Jump to content

Array de objectos/controlos


Rodrigues
 Share

Recommended Posts

O array de caixas de texto podes criar da mesma forma que crias outro array qualquer.

Para limpares a dataGridView podes afectar o datasource com null.

Para a combo box há metodos ou propriedades como o SelectedValue ou o SelectedIndex, n me lembro quais ao certo estão dispiniveis.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

Suponho que venhas do VB6 ou inferior, e era fácil criar arrays de objectos, bastando apenas copiar e colar, e responder sim à pergunta de clonar objectos.

No VB.net isso é um bocado mais difícil, e tens de o fazer programaticamente, ou seja, via código. A lógica é criares os teus objectos como se fossem variáveis do tipo TextBox, Listbox, etc, e adcicioná-los oficialmente à lista de objectos do formulário. Deixo-te um exemplo de como adicionar um conjunto de 10 textboxes:

Private Sub criarTextbox(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' criar um array para criar os nosso objectos
    Dim arraytxt(9) As TextBox

    For i As Integer = 0 To 9
        ' criar um novo objecto do tipo texbox para a posição i
        arraytxt(i) = New TextBox()

        ' definirmos as diversas propriedades para essa textbox i
        ' o operador with, tal como no VB6, serve para acedermos
        ' directamente às propriedades do objecto com o . (ponto)
        With arraytxt(i)
            .Name = "txtBox" & i ' o nome vai-nos permitir aceder ao objecto mais tarde
            .Text = "Textbox nr " & i
            .BackColor = Color.Blue
            .ForeColor = Color.White
            .Left = 0
            .Top = i * .Height
            .Show()
        End With
    Next

    ' o passo mais importante, adicionar o array oficialmente à
    ' lista de controlos do formulário.
    ' Só após este passo é que os controlos estarão visiveis.
    Me.Controls.AddRange(arraytxt)
End Sub

Para aceder aos seus conteúdos, podes utilizar uma função tal como:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim str As String = InputBox("Qual o nome do objecto")

    If str <> "" Then
        ' O acesso aos objectos é feito pelo seu name, que na lista de objectos é a chave (identificador)
        ' que te permite aceder apenas a esse controlo (tal como no VB6 apenas podias ter um controlo com 
        ' um nome único (excepto arrays))
        If Me.Controls.ContainsKey(str) Then
            MsgBox("Ele está cá sim senhor, vamos espreitar o seu conteúdo")
            ' Ver o conteúdo da propriedade text, para esse item (a textbox com o nome desejado)
            MsgBox(Me.Controls.Item(str).Text)
        Else
            MsgBox("Não, não existe nada com esse nome no formulário")
        End If

    End If
End Sub

Podes experimentar estas funções criando um novo projecto e adicionando dois botões, sem alterar o seu nome (ou seja, ficas com Button1 e Button2). Copias os 2 códigos para o teu projecto, e exploras conforme quiseres. 😛

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.