MUDAR PROPRIEDADES DE UM CONTROLE

JABA 18/03/2016 19:59:30
#459455
Resposta escolhida
Quando um controle está sob um container, não adianta pesquisar por ele diretamente dentro do form. Para fazer isso, você, primeiramente, terá que encontrar o container, depois percorra os controles dentro desse container para achar o controle desejado.

Ex;

dim obj as Object

For Each controle in FlowLayoutPanel1.Controls do
if controle.name = FlowLayoutPanel1.Controls.Count then
obj = controle
exit for
end if
Next

[ô]para usar
obj.Text = [Ô]lido[Ô]

VARUS 18/03/2016 20:35:53
#459458
E se por

  Form1.FlowLayoutPanel1.Controls(Name_button).text = [Ô]Lido[Ô] 

KERPLUNK 18/03/2016 20:37:12
#459459
Se [Ô]Name_Button[Ô] conter o nome do controle, funciona normal.
VARUS 18/03/2016 20:42:55
#459461
Seu código apareceu alguns erros

  If controle.name = cadastroAni.FlowLayoutPanel1.Controls.Count Then 


Citação:

A conversão da cadeia de caracteres [ô]BTN1[ô] no tipo [ô]Double[ô] não é válida.



coloquei um .ToString dps do Count e o erro foi para

  obj.Text = [Ô]lido[Ô] 


Citação:

Variável de objeto ou variável com bloco não definida.



Olhe como está o código

  Dim obj As Object

For Each controle In Form1.FlowLayoutPanel1.Controls
If controle.name = Form1.FlowLayoutPanel1.Controls.Count.ToString Then
obj = controle
Exit For
End If
Next

[ô]para usar
obj.Text = [Ô]lido[Ô]
KERPLUNK 18/03/2016 20:45:01
#459462
Você sabe o que a propriedade [Ô]count[Ô] é, certo?
VARUS 18/03/2016 20:51:57
#459463
Que conta? o total de controles?
KERPLUNK 18/03/2016 21:00:56
#459464
Sim. O seu bloco de comparação, traduzindo é:
Se o nome do controle for igual a contagem de controles dentro de FlowLayoutPanel então...

Você está comparando alho com cebola e assim nunca vai dar certo mesmo.
JABA 18/03/2016 21:01:45
#459465
Citação:

Variável de objeto ou variável com bloco não definida.



Isso aconteceu porque nenhum controle foi achado na pesquisa, daí a variavel obj ficou vazia. Coloque um nome manualmente e mais sugestivo para esse botao, e faça o teste em cima dele.
JABA 18/03/2016 21:05:04
#459466
Citação:

Sim. O seu bloco de comparação, traduzindo é:
Se o nome do controle for igual a contagem de controles dentro de FlowLayoutPanel então...

Você está comparando alho com cebola e assim nunca vai dar certo mesmo.



No inicio da postagem, ele atribuiu a quantidade de botoes como nome do controle, por isso que fiz assim.
VARUS 18/03/2016 23:23:46
#459474
O que não entendi no código, é em que momento eu especifico o botão

  Dim obj As Object

For Each controle In Form1.FlowLayoutPanel1.Controls [ô] Aqui, o que vai pegar exatamente, se eu clicar no botão 3 por exemplo, como que o If sabe que é o 3 botão? sendo que eu não especifiquei
If controle.name = Form1.FlowLayoutPanel1.Controls.Count.ToString Then
obj = controle
Exit For
End If
Next

[ô]para usar
obj.Text = [Ô]lido[Ô]


no formulário 1 onde cria os botões, mudei de : But.Name = [Ô]BTN[Ô] & FlowLayoutPanel1.Controls.Count + 1
para: But.Name = FlowLayoutPanel1.Controls.Count + 1
Seguindo o código acima, da uma travada, más não altera o text do buttn selecionado, onde eu n entendi em qual parte eu especifico o botão



e sobre usar o


  Form1.FlowLayoutPanel1.Controls(Name_button).Text = [Ô]Lido[Ô] 
também não deu certo, só que dessa vez não apareceu tela de erro
Página 2 de 3 [23 registro(s)]
Tópico encerrado , respostas não são mais permitidas