none
Como se transforma um TextBox num array? RRS feed

  • Pergunta

  • Amigos do MSDN, estou tentando entender como se transforma um TextBox num array, sei que a indexação é mais ou menos como abaixo, mas só que não sei operacionalizar, ou seja conseguir usar os TextBox.

           

    Dimnum() AsTextBox= NewTextBox() {TextBox8, TextBox9, TextBox10, TextBox11, TextBox12, TextBox13, TextBox14, TextBox15, TextBox16, TextBox17, TextBox18, TextBox19, TextBox20, TextBox21, TextBox22, TextBox23, TextBox24, TextBox25}

    segunda-feira, 19 de junho de 2017 04:17

Respostas

  • Olá Durval,

    Voce deve usar um arraylist para isso. Eu sugiro usar uma lista generica, mas vou mostar os dois métodos:

    arraylist

    ArrayList caixas_de_textos= new ArrayList();
    caixas_de_textos.Add( Textbox8);
    caixas_de_textos.Add( Textbox9);
    caixas_de_textos.Add( Textbox10);
    '.
    '.
    '.
    caixas_de_textos.Add( Textbox25);
    Dim tx As TextBox
     For Each tx In  caixas_de_textos
                Console.Write("   {0}={1}", tx.Name, tx.Value)

    lista generica

    Dim caixas_de_textos As New List(Of TextBox)
    caixas_de_textos.Add( Textbox8);
    caixas_de_textos.Add( Textbox9);
    caixas_de_textos.Add( Textbox10);
    '.
    '.
    '.
    caixas_de_textos.Add( Textbox25);
    Dim tx As TextBox
     For Each tx In  caixas_de_textos
                Console.Write("   {0}={1}", tx.Name, tx.Value)

    Os codigos sao bem parecidos, mas na lista generica voce ja define qual é a classe de objeto. No arraylist pode ser qualquer coisa... E é nesse ponto que muitos erros ocorrem. Os dois funcionam, mas com arraylist a chance de erros é maior.

    att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Sugerido como Resposta João Paulo [] segunda-feira, 19 de junho de 2017 15:29
    • Marcado como Resposta Durval Teixeira segunda-feira, 19 de junho de 2017 19:43
    segunda-feira, 19 de junho de 2017 13:56
    Moderador

Todas as Respostas

  • Olá Durval,

    Voce deve usar um arraylist para isso. Eu sugiro usar uma lista generica, mas vou mostar os dois métodos:

    arraylist

    ArrayList caixas_de_textos= new ArrayList();
    caixas_de_textos.Add( Textbox8);
    caixas_de_textos.Add( Textbox9);
    caixas_de_textos.Add( Textbox10);
    '.
    '.
    '.
    caixas_de_textos.Add( Textbox25);
    Dim tx As TextBox
     For Each tx In  caixas_de_textos
                Console.Write("   {0}={1}", tx.Name, tx.Value)

    lista generica

    Dim caixas_de_textos As New List(Of TextBox)
    caixas_de_textos.Add( Textbox8);
    caixas_de_textos.Add( Textbox9);
    caixas_de_textos.Add( Textbox10);
    '.
    '.
    '.
    caixas_de_textos.Add( Textbox25);
    Dim tx As TextBox
     For Each tx In  caixas_de_textos
                Console.Write("   {0}={1}", tx.Name, tx.Value)

    Os codigos sao bem parecidos, mas na lista generica voce ja define qual é a classe de objeto. No arraylist pode ser qualquer coisa... E é nesse ponto que muitos erros ocorrem. Os dois funcionam, mas com arraylist a chance de erros é maior.

    att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Sugerido como Resposta João Paulo [] segunda-feira, 19 de junho de 2017 15:29
    • Marcado como Resposta Durval Teixeira segunda-feira, 19 de junho de 2017 19:43
    segunda-feira, 19 de junho de 2017 13:56
    Moderador
  • Valeu, obrigado por responder Willian. Vou tentar entender como se usa estes métodos. Estou usando VB no Windows Forms, mas deve dar certo também né?

    Abraços/Durval

    segunda-feira, 19 de junho de 2017 19:43
  • Willian, ainda não consegui pegar o espirito da coisa, talvez se você me desse um exemplo usando os TextBox, que no caso você colocou Console.Write(... e devido a minha pouca experiência, não consegui entender.

    Grato Durval

    terça-feira, 20 de junho de 2017 00:43
  • Me explique melhor o que voce quer fazer... 

    O que voce espera obter de um array de textbox?

    Att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    terça-feira, 20 de junho de 2017 18:51
    Moderador
  • William, o objetivo disso é tornar o código mais enxuto e bem menos trabalhoso na hora de monta-lo. Mais ou menos assim:

    sem array:

    TextBox1.Text=valor(n) : Textbox2.Text=valor(n)......: TextBox1000.Text=valor(n)

    com array

    For u=1 to 1000

         array(u)=valor

    Next

    Pelo menos é assim que consigo entender, claro que para quem tem mais experiência, deve utilizar outros métodos. Mas quero lhe agradecer pois fui mudando aquela dica que você deu e consegui o que eu queria. Fiz assim:

    Dim dez() As TextBox

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim num As Integer

    Dim dez = New TextBox() {TextBox1, TextBox2, TextBox3}

    For v=0 to 2

      num+=1

      dez(v).Text = num

    Next 

    End Sub

    A partir disso consigui entender como se pode usar um TextBox como um array. O difícil para quem ainda não conhece nem 10% de VB (como eu) são essas coisas, talvez um analista experiente ache isso até ridículo mas ele deve lembrar que um dia ele também não sabia essas bases da informática.

    Grato/Durval


       

           


           

           

            

           

     

    quarta-feira, 21 de junho de 2017 00:41