Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
765
Assunto : ASP.NET
Titulo: Colorindo a caixa de entrada ativa

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Para fazer uma tarefa como essa, que envolve a interface gráfica, precisamos fazer uso de javascript. Veja como ficaria o código javascript para fazer isso em uma caixa :


<input name="txtFirstName" type="text"
id="txtFirstName"
onfocus= "this.style.backgroundColor='Yellow'; this.style.color = 'Blue';"
onblur="this.style.backgroundColor='Window'; this.style.color='WindowText';"
/>

Através dos eventos onfocus e onblur definimos as cores da caixa, alterando a cor no momento em que a caixa ganha o foco e voltando ao normal quando perde.

Podemos facilmente criar uma rotina para gerar esse javascript dinamicamente. Podemos fazer uma sub que, recebendo uma caixa e as cores, gere o javascript para esta tarefa. Veja como fica :

Sub SetInputControlColors(ByVal ctl As _
WebControl, ByVal backColor As Color, _
ByVal foreColor As Color, _
ByVal focusBackColor As Color, _
ByVal focusForeColor As Color)

Dim jsOnFocus As String = String.Format( _
"this.style.backgroundColor = '{0}';" _
& "this.style.color = '{1}';", _
focusBackColor.Name, focusForeColor.Name)
Dim jsOnBlur As String = String.Format( _
"this.style.backgroundColor = '{0}';" _
& "this.style.color = '{1}';", _
backColor.Name, foreColor.Name)
ctl.Attributes.Add("onfocus", jsOnFocus)
ctl.Attributes.Add("onblur", jsOnBlur)
End Sub


Através da propriedade Attributes de um control podemos adicionar atributos na renderização, gerando o evento que desejamos.

Esta sub acima vai fazer a tarefa para uma caixa, mas o ideal é deixarmos o formulário todo com a cor alterada. Então precisaremos de outra sub para fazer isso para todo o formulário. Veja :

Sub SetAllInputControlsColors(ByVal parent As _
Control, ByVal backColor As Color, _
ByVal foreColor As Color, _
ByVal focusBackColor As Color, _
ByVal focusForeColor As Color)

For Each ctl As Control In parent.Controls
If TypeOf ctl Is TextBox OrElse _
TypeOf ctl Is ListBox OrElse _
TypeOf ctl Is DropDownList Then
SetInputControlColors(DirectCast( _
ctl, WebControl), _
backColor, foreColor, _
focusBackColor, _
focusForeColor)
Else
SetAllInputControlsColors(ctl, _
backColor, foreColor, _
focusBackColor, _
focusForeColor)
End If
Next
End Sub

Observe o truque de recursividade. Esta sub testa se o controle é um dos previstos para mudar de cor. Se não for, então passa a analisar os controles filhos dele, de forma recursiva para poder atingir todas as caixas, mesmo que estejam dentro de panels, por exemplo.

** Dica baseada em texto do .NET2THEMAX




Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br