Pregunta

Tengo una forma que se define en maximizada , pero por alguna razón se está ignorando la barra de tareas y maximizar a toda la pantalla. Es típico? ¿Hay alguna solución?

Estoy utilizando Windows XP con una configuración de monitor dual (barra de tareas en la primera ventana / primaria).

¿Fue útil?

Solución 2

Una cosa que me dejó fuera de la descripción - Me apaga el botón de maximizar. Cuando probé convertir esa propiedad de nuevo, la barra de tareas se presentó de nuevo. Al parecer, se supone si no desea que un botón de maximizar va a crear una aplicación de estilo kiosco en el que no desea que los usuarios puedan ver nada pero la pantalla de la aplicación. No es exactamente lo que cabe esperar, pero funciona, supongo.

Otros consejos

Si está utilizando FormBorderStyle.None entonces es muy simple para asegurarse de que no cubre la barra de tareas cuando se maximizan:

this.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size;

Es probable que funcione para otros estilos de borde y es probablemente la manera más limpia para garantizar que su forma no cubre la barra de tareas.

Establece el borde forma en Ninguno antes de lo que es maximizada.

Este código funcionará en un solo monitor:

private void Form1_Load(object sender, EventArgs e)
{
    this.FormBorderStyle = FormBorderStyle.None;
    this.WindowState = FormWindowState.Maximized;
}

No he probado el escenario de monitor dual ya no tengo esto en este momento. : P

Editar : Yo no entiendo "pantalla maximizada Ignora Barra de tareas". Lo que hace Ignora significa?

¿Desea que su forma para cubrir la barra de tareas y llenar toda la pantalla?

Si no desea volver a habilitar el botón de maximizar, podría configurar manualmente el tamaño de la ventana:

private void Maximize()
{
    Screen screen = Screen.FromPoint(this.Location);
    this.Size = screen.WorkingArea.Size;
    this.Location = Point.Empty;
}

(WorkingArea es el área de la pantalla que puede ser utilizada por las aplicaciones, con exclusión de la barra de tareas y otras barras de herramientas)

  

Una cosa que me dejó fuera de la descripción - Me apaga el botón de maximizar. Cuando probé convertir esa propiedad de nuevo, la barra de tareas se presentó de nuevo. Al parecer, se supone si no desea que un botón de maximizar va a crear una aplicación de estilo kiosco en el que no desea que los usuarios puedan ver nada pero la pantalla de la aplicación. No es exactamente lo que cabe esperar, pero funciona, supongo.

he tenido este problema y lo resolvió con la ayuda de Jeff. En primer lugar, establecer el windowstate a maximizada . pero No desactivar el MaximizeBox . Entonces, si usted quiere MaximizeBox a ser desactivado debe hacerlo mediante programación:

private void frmMain_Load(object sender, EventArgs e)
{
   this.MaximizeBox = false;
}

barra de tareas se puede acoplar a la izquierda, superior, inferior, lado derecho. Si quieres ventana maximizada y sin barra de tareas superpuestas, utilice este código:

...cut...
  public partial class Form2 : Form
    {
        public Form2()
        {
          // set default start position to manual  
          this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 


          // set position and size to the Form.  
          this.Bounds = Screen.PrimaryScreen.WorkingArea; 


      ....
          InitializeComponent();
        }

...cut...

Cuando se establece el estilo de borde forma a ninguna forma ocultará la barra de tareas. Para evitar esto hay que establecer el del MaximumSize de forma manual. Si las ventanas de auto-oculta la barra de tareas de forma cubrirá incluso la barra de tareas oculta! Para evitar esto reducir la altura de limite por un píxel (si la barra de tareas se encuentra en la parte inferior)!

        Me.MaximumSize = New Size(My.Computer.Screen.WorkingArea.Size.Width, _
                                  My.Computer.Screen.WorkingArea.Size.Height - 1)

Lo que hice es la siguiente:

  • Conjunto MaximizeBox propiedad en true
  • Conjunto WindowState en Maximized
  • En el constructor de la forma, escribió lo siguiente:

    this.Bounds = Screen.PrimaryScreen.WorkingArea;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top