Re: Como capear este Bug?

07/02/2006 - 18:13 por trivet | Informe spam
Se me ha ocurrido una chorrada que no se si te puede ser de utilidad
consiste en guardarse en una variable global a nivel de form el control que tien
el foco cuando el form se activa,
en el enter del textbox2 si este control que tenia el foco era el textbox 1 provoca el evento leave manualmente seria algo así

Private m_bLastControl As Contro

Private Sub Form2_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activate
m_bLastControl = ActiveContro
End Su

Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Ente
If m_bLastControl Is TextBox1 The
TextBox2_Leave(m_bLastControl, Nothing
End I
End Su

' Tu codigo --
Private Sub TextBox2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave, TextBox3.Leave, TextBox2.Leav
Select Case CType(sender, TextBox).Nam
Case "TextBox1
MsgBox("Salgo del 1 FROM 2"
Case "TextBox2
MsgBox("Salgo del 2 FROM 2"
Case "TextBox3
MsgBox("Salgo del 3 FROM 2"
End Selec
End Su

Espero que te sirv

trivet

Ver este tema: http://www.softwaremix.net/viewtopic-482512.htm

Enviado desde http://www.softwaremix.net

Preguntas similare

Leer las respuestas

#1 LuisMiguel
08/02/2006 - 13:47 | Informe spam
Pues no me parece ninguna chorrada.
Lo pruebo y te cuento

Gracias
LuisMiguel
"trivet" escribió en el mensaje
news:


Se me ha ocurrido una chorrada que no se si te puede ser de utilidad.
consiste en guardarse en una variable global a nivel de form el control
que tiene
el foco cuando el form se activa,
en el enter del textbox2 si este control que tenia el foco era el textbox
1 provoca el evento leave manualmente seria algo así.

Private m_bLastControl As Control

Private Sub Form2_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Activated
m_bLastControl = ActiveControl
End Sub

Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox2.Enter
If m_bLastControl Is TextBox1 Then
TextBox2_Leave(m_bLastControl, Nothing)
End If
End Sub

' Tu codigo
Private Sub TextBox2_Leave(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.Leave, TextBox3.Leave, TextBox2.Leave
Select Case CType(sender, TextBox).Name
Case "TextBox1"
MsgBox("Salgo del 1 FROM 2")
Case "TextBox2"
MsgBox("Salgo del 2 FROM 2")
Case "TextBox3"
MsgBox("Salgo del 3 FROM 2")
End Select
End Sub

Espero que te sirva


trivet


Ver este tema: http://www.softwaremix.net/viewtopic-482512.html

Enviado desde http://www.softwaremix.net



Respuesta Responder a este mensaje
#2 LuisMiguel
08/02/2006 - 19:25 | Informe spam
Bueno, pues las primeras pruebas funcionan correctamente,
tuve que añadirle un boolean para evitar que se ejecutara al cargarlo, y por
si le sirve a alguien

private BoBug as Boolean=false

Private Sub Form2_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Activated
if boBug the m_bLastControl = ActiveControl
bobug=true
End Sub

Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox2.Enter, TextBox3.Enter, TextBox2.Enter

If not m_bLastControl is nothing and not m_bLastControl Is
ctype(sender,control) Then
TextBox2_Leave(m_bLastControl, Nothing)
End If
End Sub

Muchas gracias por tu idea
Suerte
LuisMiguel
"LuisMiguel" <lmolinoARROBAyaPUNTOcom> escribió en el mensaje
news:


Pues no me parece ninguna chorrada.
Lo pruebo y te cuento

Gracias
LuisMiguel
"trivet" escribió en el mensaje
news:


Se me ha ocurrido una chorrada que no se si te puede ser de utilidad.
consiste en guardarse en una variable global a nivel de form el control
que tiene
el foco cuando el form se activa,
en el enter del textbox2 si este control que tenia el foco era el textbox
1 provoca el evento leave manualmente seria algo así.

Private m_bLastControl As Control

Private Sub Form2_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Activated
m_bLastControl = ActiveControl
End Sub

Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox2.Enter
If m_bLastControl Is TextBox1 Then
TextBox2_Leave(m_bLastControl, Nothing)
End If
End Sub

' Tu codigo
Private Sub TextBox2_Leave(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.Leave, TextBox3.Leave, TextBox2.Leave
Select Case CType(sender, TextBox).Name
Case "TextBox1"
MsgBox("Salgo del 1 FROM 2")
Case "TextBox2"
MsgBox("Salgo del 2 FROM 2")
Case "TextBox3"
MsgBox("Salgo del 3 FROM 2")
End Select
End Sub

Espero que te sirva


trivet


Ver este tema: http://www.softwaremix.net/viewtopic-482512.html

Enviado desde http://www.softwaremix.net









email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida