Estimados, estoy trabajando en VS 2008 y necesito hacer lo siguiente y no sé
cómo resolverlos, por eso les pido ayuda
Tengo un control Texbox que necesito que cada vez que haga foco en él se abra
un formulario, esto lo hago de la siguiente manera
Dentro de un control propio heredado de Windows.forms.textbox, en el método
GotFocus abro un formulario (frmCaptura)
Public Class tb
Inherits System.Windows.Forms.TextBox
Private Sub tb_GotFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.GotFocus
Dim frm As New frmCaptura
Try
frm.showdialog(Me)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Hasta acá todo bien, el problema se me presenta cuando cierro el formulario
frmCaptura y vuelve a tomar foco el Textbox ya que se vuelve a ejecutar el
método GotFocus y abre nuevamente el formulario
Probé creando una variable privada para saber si ya tomo foco alguna vez el
TextBox poniéndola en true en el gotFocus y en False en el LostFocus, acá se me
presenta otro problema,
Cuando abro el formulario en el gotfocus, también se ejecuta el evento
LostFocus ya que el control pierde foco y la variable se setea en false y con
esto volvemos a empezar, cuando cierro el formulario se vuelve a ejecutar el
método Gotfocus y abre nuevamente el formulario frmCaptura,
Public Class tb
Inherits System.Windows.Forms.TextBox
Private blnYaAbrio As Boolean = False
Private Sub tb_GotFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.GotFocus
Dim frm As New frmCaptura
Try
If Not blnYaAbrio Then
blnYaAbrio = True
frm.showdialog(Me)
End If
Catch ex As Exception
Throw ex
End Try
End Sub
Private Sub tb_LostFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.LostFocus
Try
blnYaAbrio = False
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Es decir estoy en un bucle y no sé cómo resolverlo
Espero haber sido claro, cualquier cosa pregunten así me ayudan a resolver este
problema
Gracias de antemano
Claudio