Usuário com melhor resposta
Iniciante em .NET

Pergunta
-
Olá Pessoal.
Sou nova em .NET. Trabalhei com vb6 durante muitos anos.
Preciso criar um método que faça o seguinte:
Quando um textbox recebe o foco quero alterar a cor do BackColor para amarelo e quando perde o foco, voltar para branco.
Esta rotina será usada em varias paginas do sistema que possuem textbox. Como faço isto? Tenho que criar uma classe?
No vb6, eu fazia da seguinte forma: Eu tinha um modulo.bas e dentro dele tinha varios metodos e eles eram chamados nas paginas. É o mesmo em Silverlight?
Obrigada
Min
- Editado Min_T segunda-feira, 2 de abril de 2012 19:39
Respostas
-
Amigo,
Da maneira que voce fez não deixa de estar certo. Porem no teu caso como é coisa simples somente mudar cores basta vc criar uma classe estatica que no vb6 seria um modulo se nao me engano. e ficaria mais ou menos assim.
Classe estatica
public static class Util { public static void Focaliza(Control _control, bool _valor) { Color color = (_valor) ? Color.FromArgb(255, 255, 255, 204) : Colors.White; _control.Background = new SolidColorBrush(color); _control.Foreground = new SolidColorBrush(Colors.Black); } }
Chamada nos eventos
private void txtOrganizacao_GotFocus(object sender, RoutedEventArgs e) { Util.Focaliza((TextBox)sender, true); } private void txtOrganizacao_LostFocus(object sender, RoutedEventArgs e) { Util.Focaliza((TextBox)sender, false); }
se a resposta foi útil, classifique :)
ate mais,
Rodrigo Soria- Marcado como Resposta Min_T segunda-feira, 2 de abril de 2012 22:20
Todas as Respostas
-
Min, boa tarde, você está trabalhando em uma aplicação web ou desktop ?
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
-
Olá, você vai precisar de dois eventos do TexBox, o evento Leave (quando o TextBox perde o foco) e o evento Enter (quando o TextBox ganha o foco), segue o exemplo de código:
'Quando perde o foco Private Sub TextBox1_Leave(sender As System.Object, e As System.EventArgs) Handles TextBox1.Leave TextBox1.BackColor = Color.Yellow End Sub 'Quando recebe o foco Private Sub TextBox1_Enter(sender As System.Object, e As System.EventArgs) Handles TextBox1.Enter TextBox1.BackColor = Color.White End Sub
Não esqueça de colocar as referências para os métodos Leave e Enter nas propriedades do TextBox.
Espero ter ajudado, Thiago Coelho.
thiagokoelho
-
Olá Thiago.
Eu fiz assim. Por favor, veja se está certo. Tenho algumas duvidas quanto a orientação a objetos.
Criei uma classe util.cs. Neste arquivo eu inseri a classe FocalizaCampo. Nesta rotina ele altera a cor para qualquer textbox porque estou passando como parametro o Controle. Veja a classe como ficou:
using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; namespace Teste { public class FocalizaCampo { public void Focaliza(Control container, bool _valor) { if (_valor == true) { container.Background = new SolidColorBrush(Color.FromArgb(255, 255, 255, 204)); container.Foreground = new SolidColorBrush(Colors.Black); } else { container.Background = new SolidColorBrush(Colors.White); container.Foreground = new SolidColorBrush(Colors.Black); } } } }
No GotFocus, eu chamo a classe:
private void txtOrganizacao_GotFocus(object sender, RoutedEventArgs e) { FocalizaCampo focaliza = new FocalizaCampo(); focaliza.Focaliza(txtOrganizacao, true); }
No LostFocus:
private void txtOrganizacao_LostFocus(object sender, RoutedEventArgs e) { FocalizaCampo focaliza = new FocalizaCampo(); focaliza.Focaliza(txtOrganizacao, false); }
Está funcionando certinho, mas como tenho duvida sobre a OO, é correto fazer isto?
Neste arquivo Util.cs, pretendo criar outras classes publicas. Isto é uma boa prática de programação?
Att.
Min
-
Amigo,
Da maneira que voce fez não deixa de estar certo. Porem no teu caso como é coisa simples somente mudar cores basta vc criar uma classe estatica que no vb6 seria um modulo se nao me engano. e ficaria mais ou menos assim.
Classe estatica
public static class Util { public static void Focaliza(Control _control, bool _valor) { Color color = (_valor) ? Color.FromArgb(255, 255, 255, 204) : Colors.White; _control.Background = new SolidColorBrush(color); _control.Foreground = new SolidColorBrush(Colors.Black); } }
Chamada nos eventos
private void txtOrganizacao_GotFocus(object sender, RoutedEventArgs e) { Util.Focaliza((TextBox)sender, true); } private void txtOrganizacao_LostFocus(object sender, RoutedEventArgs e) { Util.Focaliza((TextBox)sender, false); }
se a resposta foi útil, classifique :)
ate mais,
Rodrigo Soria- Marcado como Resposta Min_T segunda-feira, 2 de abril de 2012 22:20
-