none
como pasar el foco a otro form al cerrarlo? RRS feed

  • Pregunta

  • hola. soy nuevo en esto. tengo una pregunta q he investigado en la web y no he encontrado la respuesta. Tengo un proyecto de vb2010, que en la ejecucion tengo abierto un form(1) del cual tengo un boton q m abre otro form(2) que no importa lo q hace, el problema es que al cerrar el form(2), no m manda el foco a ningun lado, y yo quiero q me lo mande a un textbox especifico del primer form como hago?
    miércoles, 17 de diciembre de 2014 0:11

Todas las respuestas

  • Marcelo,

    A ver, si estás abriendo un formulario modal entonces posterior a la llamada podrías dar el foco al control que quieres. Este código estará en el Form1 dentro de un botón

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim form As New Form2()
    
      form.ShowDialog()
    
      TextBox1.Focus()
    End Sub

    Ahora, si tu formulario no es modal ahí se complica mucho las cosas. Lo que podrías hacer es que cada vez que form1 sea el formulario activo envíe el foco al control que desees, aunque esto no es una buena practica.

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim form As New Form2()
    
      form.Show()
    End Sub
    
    Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles MyBase.Activated
      TextBox1.Focus()
    End Sub

    __________________________________________________________________________________________________
    Espero haberte ayudado con mi sugerencia, si resolvió tu problema no olvides marcarla como respuesta.

    Willams Morales P.
    Arequipa - Perú


    miércoles, 17 de diciembre de 2014 0:58
  • hola

    desde el form1 podrias contrlar el close del form2

    o sea en el form1 usarias

    public void button1_click(..){
    
        Form2 frm2= new Form2();
        frm2.FormClosing += Form2_FormClosing;
        frm.Show();
    
    }
    
    private void Form2_FormClosing(Object sender, FormClosingEventArgs e) {
    
        textbox1.Focus();
    
    }

    Nota: puedes usar el evento Closing o Closed quizas en este caso sea indistinto

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 17 de diciembre de 2014 4:45
  • Muchas gracias Williams Morales, funciono como yo queria, de la primera forma q me mencionaste. Gracias
    miércoles, 17 de diciembre de 2014 15:25
  • Genial Marcelo, pero recuerda que en el caso de ser un formulario no modal la solución que nos brinda Leandro es la mejor.

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim form As New Form2()
    
      form.FormClosing += Form2_Closing;
    
      form.Show()
      
    End Sub
    
    Private Sub Form2_Closing(sender As [Object], e As FormClosingEventArgs)
      TextBox1.Focus()
    End Sub

    __________________________________________________________________________________________________
    Espero haberte ayudado con mi sugerencia, si resolvió tu problema no olvides marcarla como respuesta.

    Willams Morales P.
    Arequipa - Perú

    miércoles, 17 de diciembre de 2014 15:32