none
Objetos e Variaveis RRS feed

  • Pergunta

  • Boa Tarde Galera,

    Na verdade nunca perguntei nada aqui no forum, eh minha primeira vez, e a minha pergunta eh por um motivo meio maluco, mas fiquei curioso sobre a possibilidade.

    A linguagem abordada nesse caso eh o vb.net do visual studio 2013

    queria saber, se alguém já fez ou se sabe como fazer chamadas ou alterações de propriedades de um objeto, sendo referenciado por uma variável?

    vou dar um exemplo pra ficar mais claro.

    digamos que eu tenha alguns forms e que cada um contenha pelo menos uns 100 textbox. (Sim eu tenho uma aplicação assim)

    e digamos que eu queira fazer um rotina para limpar esses 100 textbox, mas nao to com paciência pra fazer:

    textbox1.clear

    texbox2.clear etc etc etc

    então eu decidir criar uma rotina chamada limpar que vai limpar esses textbox, essa rotina vai receber um array contando o nome desses textbox e com um loop eu faço algo parecido com item[i].clear (claro que nao dessa forma, foi somente para ilustrar)

    outra utilidade para isso seria no caso onde vc define acesso a um usuário ativando ou desativando um item do menu, nesse caso no cadastro do usuário teriam todos os itens dos quais ele teria acesso e no momento do login eu executaria um loop onde eu habilitaria somente os itens cadastrados e os outros ficariam inativos.

    Obrigado a todos pela atenção

    quarta-feira, 20 de agosto de 2014 18:13

Respostas

  • Passe o FORM ou o controle CONTAINER(Panel,groupbox,form) para uma sub,no qual recebe um tipo de classe

    dependendo da situação pode ser um Object,depois teria que fazer um cast para trabalha-lo,

    sem o cast,direto do form,mais ou menos assim:

    LINQ:

     Dim xVal = From _v In xControles.Controls Where TypeOf _v Is TextBox Select _v
            For Each _v As Control In xVal
                _v.Text = Nothing
            Next

    Tradicional:

     Public Sub Limpar(ByVal xControles As Form)
            'procura controles no form que esta sendo recebido por parametro
            For Each xCon As Control In xControles.Controls
                'verifica se o tipo do controle da vez é um textbox
                If (TypeOf xCon Is TextBox) Then
                    'limpar a propriedade text do controle
                    xCon.Text = Nothing
                End If
            Next
        End Sub

    chamando

    Dim cls As New Class1
            cls.Limpar(Me)



    Microsoft Technology Associate (MTA)



    quarta-feira, 20 de agosto de 2014 18:54

Todas as Respostas

  • Passe o FORM ou o controle CONTAINER(Panel,groupbox,form) para uma sub,no qual recebe um tipo de classe

    dependendo da situação pode ser um Object,depois teria que fazer um cast para trabalha-lo,

    sem o cast,direto do form,mais ou menos assim:

    LINQ:

     Dim xVal = From _v In xControles.Controls Where TypeOf _v Is TextBox Select _v
            For Each _v As Control In xVal
                _v.Text = Nothing
            Next

    Tradicional:

     Public Sub Limpar(ByVal xControles As Form)
            'procura controles no form que esta sendo recebido por parametro
            For Each xCon As Control In xControles.Controls
                'verifica se o tipo do controle da vez é um textbox
                If (TypeOf xCon Is TextBox) Then
                    'limpar a propriedade text do controle
                    xCon.Text = Nothing
                End If
            Next
        End Sub

    chamando

    Dim cls As New Class1
            cls.Limpar(Me)



    Microsoft Technology Associate (MTA)



    quarta-feira, 20 de agosto de 2014 18:54
  • entao! qual a duvida?

    Microsoft Technology Associate (MTA)

    quarta-feira, 20 de agosto de 2014 19:04