Visual Basic - Clase para cambiar el backcolor de un textbox

Life is soft - evento anual de software empresarial
   
Vista:

Clase para cambiar el backcolor de un textbox

Publicado por Jorge (55 intervenciones) el 26/11/2010 18:02:12
Hola, estaba probado una clase para que cada vez que me posisione en un textbox, el backcolor cambie y cuando ya no este en foco vuelva a su color original,

Con un solo textbox me funciona, peeeero cuando el textbox es parte de una matriz de controles, ya no se puede :(

Como debo hacerlo?, repito con un textbox que no es parte de una matriz funciona el codigo pero con matriz ya no, como debo declararlo???
gracias

'*************************************************************
'*************************************************************
Clase para textbox: CLTextVisual
'*************************************************************
Private WithEvents Mi_Text As TextBox

Public Sub Iniciar(El_TextBox As TextBox)
Set Mi_Text = El_TextBox
Mi_Text.BackColor = &HE0E0E0
End Sub

Private Sub Mi_Text_GotFocus()
Mi_Text.BackColor = &HFFFFFF
End Sub

Private Sub Mi_Text_LostFocus()
Mi_Text.BackColor = &HE0E0E0
End Sub

'*************************************************************
'*************************************************************
en el formulario tengo dos texbox como matriz, text1(0) y text1(1)
'*************************************************************

Option Explicit
' Variable para la clase
Dim Objtxt As CLTextVisual

Private Sub Form_Load()
'Nueva instancia
Set Objtxt = New CLTextVisual
'asigno el text1(0) para que haga lo de la clase
' si fuese solo text1 sin que pertenezca a una matriz funciona
Objtxt.Iniciar Text1(0)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set Objtxt = Nothing
End Sub

'*************************************************************
'*************************************************************

' LUEGO SALE ESTE ERROR! :(((((

Error 469 en tiempo de ejecucion:
El objeto o la clase no admite el conjunto de eventos

===>Depurar en (CLTextVisual):
Public Sub Iniciar(El_TextBox As TextBox)
Set Un_Text = El_TextBox <============ AQUI
...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Clase para cambiar el backcolor de un textbox

Publicado por miguel (1042 intervenciones) el 02/12/2010 03:14:05
Tienes que usar clase???

Visual Basic 6.0 las clases no son lo mas eficaz no te enredes utiliza lo siguiente:

Private Sub Text1_GotFocus()
plPonColor Me.Text1, vbYellow
End Sub

Sub plPonColor(pControl As TextBox, pColor)
pControl.BackColor = pColor
End Sub

Private Sub Text1_LostFocus()
plPonColor Me.Text1, vbWhite
End Sub

Private Sub Text2_GotFocus()
plPonColor Me.Text2, vbYellow
End Sub

Private Sub Text2_LostFocus()
plPonColor Me.Text2, vbWhite
Me.Text1.SetFocus
End Sub

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar