Claudio,

                

                No lo probé, pero como abrís el formulario de forma modal,
creo que así debería andar:

 

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

If Not blnYaAbrio Then

        Dim frm As New frmCaptura

        Try

            If Not blnYaAbrio Then

                blnYaAbrio = True

                frm.showdialog(Me)

            End If

        Catch ex As Exception

            Throw ex

        Finally

                blnYaAbrio = False

        End Try

End If

    End Sub

End Class

 

 

De: [email protected] [mailto:[email protected]] En nombre de Claudio
Speroni
Enviado el: viernes, 14 de octubre de 2011 13:12
Para: [email protected]
Asunto: [puntonet] Windows Form

 

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

 

Responder a