Array
(
)

VB - Array de objetos

Terra.jr
   - 04 mar 2008

Galera, meu forte é Java, mas novamente eu to precisando fazer um trabalho em Visual Basic e ai o Bicho Pega.

Eu queria saber como eu faço para criar uma array de objeto Text por exemplo:

Eu criei um módulo que tem o seguinte código:
#Código

Public Sub desativaCampo(ByRef obj As Object)
        obj(cont).Enabled = False
        obj(cont).BackColor = &H80000000
End Sub

Public Sub ativaCampo(ByRef obj() As Object)
        obj.Enabled = True
        obj.BackColor = &H80000005
End Sub


Ai na minha tela eu coloco:

#Código
desativaCampo(txtCampo1)
ativaCampo(txtCampo1)


Nesse código acima ele deixa desativado e com a cor cinza e quando eu chamo o ativaCampo(objeto) ele ativa o campo que foi passado como parametro.

Eu queria saber se tem como eu passar mais que um campo de uma só vez, como parametro.

Eu tentei algo como:

#Código
Public Sub desativaCampo(ByRef obj() As Object)
    Dim cont As Integer
    For cont = 0 To obj
        obj(cont).Enabled = False
        obj(cont).BackColor = &H80000000
    Next
End Sub

Public Sub ativaCampo(ByRef obj() As Object)
    Dim cont As Integer
    For cont = 0 To obj
        obj(cont).Enabled = True
        obj(cont).BackColor = &H80000005
    Next
End Sub


Ai no minha tela eu faria:
#Código
desativaCampo(txtCampo1, txtCampo2, txtCampo7)


Mas não deu certo!
HELP ME

Hugoestevam
   - 05 mar 2008

Tente isso:

Preenchendo o arrayList:
#Código

Dim arrTextBox as new arraylist

arrTextBox.add txtCampo1
arrTextBox.add txtCampo2
arrTextBox.add txtCampo3


Funções ativa e desativa:
#Código
Public Sub desativaCampo(ByRef arrTextBox As arrayList) 
dim t as textbox
    For each Obj in arrTextBox
         if typeof(Obj) is TextBox then
            t = ctype(Obj,textbox)
            t.Enabled = False
            t.BackColor = &H80000000
         end if
    next
End Sub 

Public Sub ativaCampo(ByRef arrTextBox As arrayList) 
dim t as textbox
    For each Obj in arrTextBox
         if typeof(Obj) is TextBox then
            t = ctype(Obj,textbox)
            t.Enabled = True
            t.BackColor = &H80000005
         end if
    next
End Sub 


Chama as funções ativa e desativa:
#Código
desativaCampo(arrTextBox) 
ativaCampo(arrTextBox)


Espero que ajude...
Até mais