Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

samesdavis

[Resolvido] Mudança de cores em campos

Mensagens Recomendadas

samesdavis

Tenho um form que tem vários campos, e desejo que ao receber foco, a cor do campo mude e ao perder o foco volte ao que era antes.

Eu até já fiz o código para fazer isso:

	Private Sub cbIDEMPR_FUNC_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbIDEMPR_FUNC.GotFocus
	Me.cbIDEMPR_FUNC.BackColor = Color.LightGoldenrodYellow
End Sub

Private Sub cbIDEMPR_FUNC_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbIDEMPR_FUNC.LostFocus
	Me.cbIDEMPR_FUNC.BackColor = Color.White
End Sub

O problema é que terei de colocar esse mesmo código para cada campo, mudando o nome dos campos.

Existe alguma forma de eu fazer um loop no meu form para fazer esse esquema automaticamente?

Editado por Caça
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caça

Podes criar tu uns controlos personalizados já com essa funcionalidade, prontos a usar em qualquer parte do programa sem ter de estar a repetir código.


Pedro Martins

Não respondo a duvidas por PM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caça

Com uma classe que vai herdar de um controlo, por exemplo

Public Class MyTextBox
  Inherits TextBox

  'O teu código aqui
End Class

Depois de teres o teu código ai, faz um Rebuild e a tua nova TextBox vai-te aparecer na ToolBox


Pedro Martins

Não respondo a duvidas por PM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
samesdavis

Será bom que irei aprender a fazer isso:

Montei esse código

Imports System.Windows.Forms

Public Class clTexboxColor

   Public Class TextBoxColor
       Inherits TextBox

       Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
           Me.BackColor = Color.LightGoldenrodYellow
           MyBase.OnGotFocus(e)
       End Sub

       Protected Overrides Sub OnLostFocus(ByVal e As System.EventArgs)
           Me.BackColor = Color.White
           MyBase.OnLostFocus(e)
       End Sub


   End Class

End Class

Mas ele não está funcionando, pode me ajudar?

Editado por pmg
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
samesdavis

O que não estava funcionando, é que o novo texbox que criei, não estava aparecendo na Toolbox

Mas depois ele funcionou, tive que sair do VS2010 e quando abri de novo o código, ele estava lá.

Resolvido!

Editado por samesdavis

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.