MUDAR COR DO TEXTBOX AO RECEBER FOCO

USUARIO.EXCLUIDOS 08/05/2006 12:36:12
#145488
Alguém pode me ajudar no sentido de fazer uma função que
mude a cor do text ao receber foco?

Existe alguma forma de fazer uma função e joga-la no módulo e
fazer com que todos os textbox do programa mudar a cor ao receber
o foco..
Agradeço desde já a atenção....

Marcelo
USUARIO.EXCLUIDOS 08/05/2006 12:45:05
#145491
Tem sim...

Você vai Chamar a função uma no GotFocus e a outra no LostFocus do Textbox:
Aí vai:
no módulo coloque:

Public Sub MudaCor(FormX As Form, Tipo As Integer)

For i = 0 To FormX.Controls.Count - 1
If TypeOf FormX.Controls(i) Is TextBox Then
With FormX.Controls(i)
Select Case Tipo
Case 0 'muda a cor para amarelo
.BackColor = vbYellow
Case 1 'Volta para branco
.BackColor = vbWhite
End Select
End With
End If
Next

End Sub

Agora é o seguinte:

No GotFocus do Textbox vc Chama MudaCor Me, 0
No LostFocus do TextBox vc Chama MudaCor Me, 1

E Presto !!!

Qualquer dúvida, me mande e-mail
jneto@centershop.com.br
USUARIO.EXCLUIDOS 08/05/2006 12:48:26
#145494
no comando gotfocus do seu text box coloque:
'Text2 foi o nome do meu textbox
Private Sub Text2_GotFocus()
Text2.BackColor = COR DESEJADA 'uisser.
End Sub

e no lostfocus

Private Sub Text2_LostFocus()
Text2.BackColor = cornormal
end sub

Espero ter ajudado.
USUARIO.EXCLUIDOS 08/05/2006 12:54:51
#145500
obrigado pela ajuda, mas acontece o seguinte, tenho um form com mais de 30 text por exemplo, existe uma forma de jogar essas funçoes sem ter que entrar text por text nos eventos GOT e LOST focus e colocar a função?
USUARIO.EXCLUIDOS 08/05/2006 12:58:31
#145502
Os Controles estão indexados? se estiverem, basta um único Got e LostFocus no código.
USUARIO.EXCLUIDOS 08/05/2006 13:02:09
#145505
João

Basta criar um array então? no momento cada controle possui um nome diferente tipo txt_nome, txt_endereco, etc
o certo seria colocar txt_cadastro, txt_cadastro(0),txt_cadastro(1)...
seria isso?

Agradeço sua ajuda cara...

Marcelo
MARCOSAV 08/05/2006 13:14:27
#145510
MARCELO, aqui está o código que uso...

Option Explicit

'Coloque em seu form algumas TextBox com o nome de txtTeste (array)... Depois, copie e cole o código abaixo...

Public Function Color_In(Caixa As TextBox, Optional Tagstr As String)
Caixa.SelStart = 0
Caixa.SelLength = Len(Caixa.Text) 'seleciona todo o texto junto com SelStart
Caixa.BackColor = 12510458 'Define a cor do fundo ao receber o foco
End Function

Public Function Color_Out(Caixa As TextBox, Optional Tagstr As String)
Caixa.SelStart = 0
Caixa.BackColor = vbWindowBackground
End Function

Private Sub txtTeste_GotFocus(Index As Integer)
Color_In txtTeste(Index)
End Sub

Private Sub txtTeste_LostFocus(Index As Integer)
Color_Out txtTeste(Index)
End Sub


Abraço
T+
Tópico encerrado , respostas não são mais permitidas