ARRAYS EM VB.NET
Olá.. Eu tà ' criando um programinha no VB.NET e gostaria de automatizar o código...
Gostaria de saber se podem me ajudar????
Esse programa tem 20 campos de texto e esses campos tem "Name" da seguinte forma:
[txt-color=#ff0000]
txtDado1
txtDado2
txtDado3
.......
txtDado20
[/txt-color]
Tenho também um HScroolBar. Esse ScroolBar funciona assim: Quando seu valor é igual a 5, por exemplo, todos os campos de txtDados1 até txtDados 5 são visÃveis e o resto fica invisÃvel.... Quando o valor do ScroolBar é 18, por exemplo, todos os campos de texto de 1 até 18 são visÃveis e o txtDados19 e o txtDados20 são invÃsiveis...
Meu código é mais ou menos assim:
[txt-color=#ff0000]
Private Sub hsbMedicoes_Change()
lblNumeroMedicoes.Text = Str(hsbMedicoes.Value)
If hsbMedicoes.Value < 20 Then
txtDado20.Visible = False
Else
txtDado20.Visible = True
End If
If hsbMedicoes.Value < 19 Then
txtDado19.Visible = False
Else
txtDado19.Visible = True
End If
If hsbMedicoes.Value < 18Then
txtDado18Visible = False
Else
txtDado18Visible = True
End If
End Sub
[/txt-color]
Você percebe a sequência do código... Ele é a mesma coisa para todos os valores que o Scroll pode assim, a única coisa que muda são os números dos campos de texto...
Queria saber se vc sabe como automatizar isso???
Desde já, Muito OBRIGADO
Gostaria de saber se podem me ajudar????
Esse programa tem 20 campos de texto e esses campos tem "Name" da seguinte forma:
[txt-color=#ff0000]
txtDado1
txtDado2
txtDado3
.......
txtDado20
[/txt-color]
Tenho também um HScroolBar. Esse ScroolBar funciona assim: Quando seu valor é igual a 5, por exemplo, todos os campos de txtDados1 até txtDados 5 são visÃveis e o resto fica invisÃvel.... Quando o valor do ScroolBar é 18, por exemplo, todos os campos de texto de 1 até 18 são visÃveis e o txtDados19 e o txtDados20 são invÃsiveis...
Meu código é mais ou menos assim:
[txt-color=#ff0000]
Private Sub hsbMedicoes_Change()
lblNumeroMedicoes.Text = Str(hsbMedicoes.Value)
If hsbMedicoes.Value < 20 Then
txtDado20.Visible = False
Else
txtDado20.Visible = True
End If
If hsbMedicoes.Value < 19 Then
txtDado19.Visible = False
Else
txtDado19.Visible = True
End If
If hsbMedicoes.Value < 18Then
txtDado18Visible = False
Else
txtDado18Visible = True
End If
End Sub
[/txt-color]
Você percebe a sequência do código... Ele é a mesma coisa para todos os valores que o Scroll pode assim, a única coisa que muda são os números dos campos de texto...
Queria saber se vc sabe como automatizar isso???
Desde já, Muito OBRIGADO
O Programa é esse, está funcionando blz... Porém eu gostaria de aprender a diminuir esse código...
Erro Aleatório 1.0
Erro Aleatório 1.0
Diondu
Coloque um Array de TextBox, então ficaria txtDado(0), txtDado(1)...... txtDAdo(20) e o código:
Teste e veja se resolve
[s50]
Coloque um Array de TextBox, então ficaria txtDado(0), txtDado(1)...... txtDAdo(20) e o código:
' --- Esconde todos ---------
For i = 0 to 20
txtDado(i).Visible = False
Next
' --- Deixa apenas 1 visÃvel -----
txtDado( hsbMedicoes.Value).Visible = True
Teste e veja se resolve
[s50]
KPELLARJR,
Muito obrigado pela ajuda...
Eu não entendo muito bem como funciona esse negócio de Array de TextBox não... Teria como vc explicar mais ou menos como que eu tenho de fazer, pois coloquei esse seu código e quando bando Debugar, dá o seguinte erro:
Name 'txtDado' is not declared.
Eu preciso alterar alguma propriedade dos TextBox pra funcionar???
Desde já, OBRIGADO
Cada Textbox tem uma propriedade chama INDEX ela serve para identificar através de um número os objetos com o mesmo nome contidos no form, txtDado é o nome do objeto e (i) é a váriavel que está no loop for que é incrementada de 1 em 1 começando de 0 até 20, então cada vez que ele fizer isso:
txtDado(i).Visible = False
O (i) vai valer um número que é o número que vc coloca no INDEX dos objetos com o mesmo nome.
Espero ter ajudado,
RGAFFO
txtDado(i).Visible = False
O (i) vai valer um número que é o número que vc coloca no INDEX dos objetos com o mesmo nome.
Espero ter ajudado,
RGAFFO
Diondu
O que o RGaffo escreveu é a teoria do que passei na prática e vamos complementar a idéia. Renomeie TODOS os TextBox para txtDado, um de cada vez, assim quando for renomear o txtDado0, altere no NAME para txtDado e o Index = 0, no txtDado1 para txtDado e Index = 1 e assim até terminar a todos.
O código que postei acima substituirá todas aquelas linhas.
[s50]
O que o RGaffo escreveu é a teoria do que passei na prática e vamos complementar a idéia. Renomeie TODOS os TextBox para txtDado, um de cada vez, assim quando for renomear o txtDado0, altere no NAME para txtDado e o Index = 0, no txtDado1 para txtDado e Index = 1 e assim até terminar a todos.
O código que postei acima substituirá todas aquelas linhas.
[s50]
Olá Gente... Acho que entendi o que vc explicaram, porém não consigo encontrar essa propriedade Index.
Quando eu usava o VB6 lembro de ter visto essa propriedade, mas agora no VB.NET não consigo a encontrar...
Essas são as propriedades que eu encontro aqui no meu VB.NET. Será que o nome da propriedade Index mudou???
Quando eu usava o VB6 lembro de ter visto essa propriedade, mas agora no VB.NET não consigo a encontrar...
Essas são as propriedades que eu encontro aqui no meu VB.NET. Será que o nome da propriedade Index mudou???
Agora acho que eu só preciso saber onde está essa propriedade INDEX. O mais parecido que encontrei foi o TabIndex...
Me ajudem, por favor...
Me ajudem, por favor...
Alguém poderia me dizer qual o novo nome da propriedade INDEX no VB.NET e como eu faço para utilizá-la....
Desde já, MUITO OBRIGADO PELA AJUDA....
Desde já, MUITO OBRIGADO PELA AJUDA....
Tópico encerrado , respostas não são mais permitidas