• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Rodrigues

Array de objectos/controlos

4 mensagens neste tópico

Viva !

sou novo nisto do VB2008

É possível criar um array de por exemplo caixas de texto txtNome(0) ....txtNome(n) ??

Como limpar uma dataGridView ?

Consigo carregar dados para uma combobox, mas como coloco um dos seus elementos logo visível ?

Isto deve ser básico !!

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

M.to obrigado softclean.

Efectivamente venho do VB 6.

Estou a tentar migrar uma bd que fiz no access 2003 com VBA para vb2008.

Há realmente uma abordagem diferente no BV2008. Estou a adaptar-me.

Percebi os exemplos que enviaste. Grande ajuda .

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora