AUTOMATIZAR A TELA DE CADASTRO
Olá pessoal estou migrando o meu projeto para vb.net e surgiu uma duvida. Vejam a tela abaixo
http://img12.imageshack.us/img12/692/semttulojli.png
Tem como ao chegar em um campo (gotfocus) o form pegar automaticamente uma propriedade do controle texto, por exemplo a TAG e colocar o conteudo dela no label abaixo, e au sair limpar essa label se necessario e colocar a outra, mais observando que eu queria fazer automaticamente,[txt-color=#e80000] sem usar gotfocus e lostfocus[/txt-color] para cada controle.
http://img12.imageshack.us/img12/692/semttulojli.png
Tem como ao chegar em um campo (gotfocus) o form pegar automaticamente uma propriedade do controle texto, por exemplo a TAG e colocar o conteudo dela no label abaixo, e au sair limpar essa label se necessario e colocar a outra, mais observando que eu queria fazer automaticamente,[txt-color=#e80000] sem usar gotfocus e lostfocus[/txt-color] para cada controle.
Foto do Carinha ai de cima....
obrigado KURTGU não tinha conseguido colocar ela no post.
prezado KERPLUNK, isso mesmo, seria quase isso, so que invés de usar uma status bar, queria usar uma label, pois todos os forms ja esta padronizados assim, entao queria uma fonção que verificasse quando o foco chegasse ao controle, isso automaticamente, sem got e lostfocus, e mostrasse o conteudo da propriedade tag (por exemplo) do controle nesta label, ou se tiver um outro jeito, mais tambem automatico, fico grato.
Peço automatico pois queria diminuir o codigo nos forms, ja pensou um codigo gotfocus e lostfocus para cada controle, ficaria muito massante e extenso sem necessidade se tivesse algo mais simples.
obrigado
prezado KERPLUNK, isso mesmo, seria quase isso, so que invés de usar uma status bar, queria usar uma label, pois todos os forms ja esta padronizados assim, entao queria uma fonção que verificasse quando o foco chegasse ao controle, isso automaticamente, sem got e lostfocus, e mostrasse o conteudo da propriedade tag (por exemplo) do controle nesta label, ou se tiver um outro jeito, mais tambem automatico, fico grato.
Peço automatico pois queria diminuir o codigo nos forms, ja pensou um codigo gotfocus e lostfocus para cada controle, ficaria muito massante e extenso sem necessidade se tivesse algo mais simples.
obrigado
Citação:Peço automatico pois queria diminuir o codigo nos forms, ja pensou um codigo gotfocus e lostfocus para cada controle, ficaria muito massante e extenso sem necessidade se tivesse algo mais simples.
é justamente por isso que se usa uma StatusBar ao invés de um label. Esse é o controle correto para fazer o que vc quer. Usar um label, até funciona, mas não é o ideal. Imagine que o que vc está fazendo é tentar serrar uma tábua usando uma chave de fenda. Até dá, mas é muito mais trabalho...
é concordo, eu não tentei usar um statusbar, estou sem vb aqui, assim que fazer uns testes posto o resultado, mais sinceramente, não sei como fazer, mais prometo tentar e postar o resultado para ficar documentado aqui no forum.
Assim eu sei que funciona
Tenta assim também No ACTIVE do FORM
Tenta Ai
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
StatusBar1.Panels(1).Text = Command1.ToolTipText
End Sub
Tenta assim também No ACTIVE do FORM
Private Sub ToolTip_Controle(objControle As Control)
[ô]
If Not Screen.ActiveControl Is Nothing Then
[ô]
If Screen.ActiveControl = objControle Then
StatusBar1.Panel(1).Text = objControle.ToolTipText
End If
[ô]
End If
[ô]
End Sub
Tenta Ai
Só pra documentar o que tinha prometido quando conseguisse realizar o que desajava segue o exemplo de um focus e um lost para todos os controles.
gostaria de receber comentários sobre este processo e se tiver algo melhor para execução do mesmo, mandem ai que eu agradeço
gostaria de receber comentários sobre este processo e se tiver algo melhor para execução do mesmo, mandem ai que eu agradeço
Vc não precisa criar uma sub para cada controle do seu form. Vc utiliza a mesma sub para todos, veja o exemplo:
Veja na parte marcada de azul, que passei todos os controles dos quais eu quero que ocorra quando o cursor chegar aos mesmos.
Fiz com label em um objeto StatusStrip pra facilitar pra vc.
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles [txt-color=#0000f0]TextBox1.Enter, TextBox2.Enter[/txt-color]
ToolStripStatusLabel1.Text = sender.tag
End Sub
Veja na parte marcada de azul, que passei todos os controles dos quais eu quero que ocorra quando o cursor chegar aos mesmos.
Fiz com label em um objeto StatusStrip pra facilitar pra vc.
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles [txt-color=#0000f0]TextBox1.Enter, TextBox2.Enter[/txt-color]
ToolStripStatusLabel1.Text = sender.tag
End Sub
Eu criaria uma SUB assim:
E colocaria este código dentro de um timer, assim:
Public Sub Catar(ByVal QualControle As Control)
LabelStatus.Text = QualControle.Text
End Sub
E colocaria este código dentro de um timer, assim:
For Each Controle As Control In Me.Controls
If Controle.Focused = True Then
Timer1.Enabled = False [txt-color=#007100][ô]Apenas para parar o Timer [/txt-color]
Catar(Controle)
Timer1.Enabled = True [txt-color=#007100][ô]Reinicia o Timer após ter concluÃdo a execução do código acima[/txt-color]
End If
Next
Citação::
Vc não precisa criar uma sub para cada controle do seu form. Vc utiliza a mesma sub para todos, veja o exemplo:
Veja na parte marcada de azul, que passei todos os controles dos quais eu quero que ocorra quando o cursor chegar aos mesmos.
Fiz com label em um objeto StatusStrip pra facilitar pra vc.
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles [txt-color=#0000f0]TextBox1.Enter, TextBox2.Enter[/txt-color]
ToolStripStatusLabel1.Text = sender.tag
End Sub
O delegate é a opção mais interessante.
Tópico encerrado , respostas não são mais permitidas