¿Cómo puedo minimizar todas las formas activas en mi aplicación que utiliza VB.NET?

¿Cómo puedo minimizar todas las formas activas en mi aplicación con un solo clic de botón?

Tengo varias formas visibles en un momento, y quiero que todos mis formas activas para minimizar cuando hago clic en un solo botón en uno de los formularios.

¿Cómo puedo lograr esto?

  • Hey alguien sabe por Qué en la esquina inferior derecha de mi pregunta, hay un cuadro que muestra mi nombre de usuario y debajo de eso, 126, 7 y, a continuación, el 100%. ¿Cuáles son estos números ?
  • LOL, yo no sabía que obtener puntuaciones de reputación para hacer preguntas. Así que puedo cambiar mis puntos por premios ?
  • Estás hablando ventanas secundarias MDI?
  • No, no estoy usando ventanas secundarias MDI
  • Sí, si usted se considera moderador privilegios como premios, seguro.

2 Kommentare

  1. 7

    Si usted no está tratando de minimizar ventanas secundarias MDI, usted puede simplemente bucle a través de todos los formularios abiertos en su aplicación y establecer sus WindowState de la propiedad para «reducir al mínimo». VB.NET proporciona una OpenForms colección para su Aplicación de la clase que hace de esta mente increíblemente simple.

    Coloque el siguiente código de ejemplo en el Click controlador de eventos de un botón de control, o método similar:

    For Each frm As Form in Application.OpenForms
        frm.WindowState = FormWindowState.Minimized
    Next frm


    Si usted desea reducir al mínimo todas las formas cuando el usuario hace clic en el sistema cuadro de minimizar en la barra de título de un único formulario, será necesario escuchar en ese evento, y ejecutar el código anterior. Hacer esto mediante la invalidación de la OnSizeChanged método para cada formulario cuyo minimizar los eventos que desea aplicar a todas las formas abiertas.

    También podría causar todas sus formas para restaurar a su estado normal cuando uno de ellos es restaurado por un clic en su icono de la barra de tareas. Simplemente se invierte el mismo procedimiento utilizado para minimizar las ventanas, la especificación de un «Normal» de la ventana de estado en lugar de «reducir al mínimo».

    Por ejemplo, usted podría escribir el siguiente código:

    Protected Overrides Sub OnSizeChanged(ByVal e As System.EventArgs)
        ' Call the base class first
        MyBase.OnSizeChanged(e)
    
        ' See if this form was just minimized
        If Me.WindowState = FormWindowState.Minimized Then
            ' Minimize all open forms
            For Each frm As Form In Application.OpenForms
                frm.WindowState = FormWindowState.Minimized
            Next frm
        ElseIf Me.WindowState = FormWindowState.Normal Then
            ' Restore all open forms
            For Each frm As Form In Application.OpenForms
                frm.WindowState = FormWindowState.Normal
            Next frm
        End If
    End Sub
    • Eso fue genial, pero hay un problema más, quiero que todos mis formas para ir al estado normal cuando hago clic en cualquiera de las formas minimizado en la barra de tareas.
    • Hoo niño. Eso es ciertamente posible, dame un minuto para actualizar mi respuesta.
    • Muhahah…funciona. @Cody muchas Gracias, aprendo mucho cada vez que recibo una respuesta. No sé mucho acerca de los niveles , ¿cuántos niveles hay ?
    • Sí, usted puede ir mucho más bajos que lo que el .NET Framework, ya que normalmente se expone a usted. Es a menudo llamado P/Invocando, corto para la plataforma de invocar, pero todo lo que significa es que usted está llamando a nativo funciones de API de Windows, en lugar de sus administrados contrapartes proporcionados por el dirección .NET Framework medio ambiente. Es a menudo necesario cuando la funcionalidad que usted desea no está previsto por .NET. Pero he actualizado mi respuesta, después de algunas pruebas, se ve como el .NET diseñadores tengo derecho y OnSizeChanged no se llama innecesariamente. No hay razón para complicarse demasiado las cosas, a menos que usted tiene un problema real.
  2. 3

    Puede recorrer a través de la Aplicación.Colección de formularios como así.

    For Each form as Form in Application.OpenForms
         .....
    End For

    Hace esta ayuda?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea