2009-05-18 9 views
6

Acople la barra de tareas a la izquierda, lo que hace que se abran muchas ventanas debajo de la barra de tareas.¿Cuál es la forma correcta de crear un formulario no obstruido por la barra de tareas de Windows?

Ninguno de los valores de System.Windows.Form.FormStartPosition tiene en cuenta la barra de tareas a excepción de Manual. ¿Esto es por diseño? Es frustrante. Quiero respetar los valores predeterminados de monitor y posición de ventana que el OS debería aplicar.

+0

Por favor, describa su pregunta más, no está demasiado claro – abatishchev

+0

Empecé a conectar la mía a la derecha porque esto era simplemente demasiado molesto molesto. La posición "predeterminada" derivada de la API CreateWindowEx ha tenido este error para siempre, y probablemente se mantendrá para siempre más. –

Respuesta

5

Bueno, si WinForms no hace esto automáticamente, puede que tenga que configurar esto manualmente.

Tendría que usar System.Windows.Forms.Screen.PrimaryScreen.WorkingArea para obtener el área de la pantalla sin la barra de tareas, y usar ese rectángulo para calcular el área de inicio del formulario manualmente, y configurarlo como la propiedad de los límites del formulario. (Asegúrese de que el formulario esté usando FormStartPosition.Manual).

+1

También tengo que verificar si la barra de tareas está configurada para ocultarse automáticamente y si el usuario quiere que la barra de tareas aparezca sobre Windows. Argh. –

+0

En general, creo que si quieres que tu programa sea "agradable" y no tengas todos esos pequeños manoseos, entonces realmente tienes mucho trabajo extra en tus manos. Y es una verdadera lástima que solo unos pocos usuarios lo aprecien (pero ser uno de esos usuarios es una razón suficientemente importante para hacer el trabajo: D) –

1

Creo que no hay forma de .NET para hacer eso. No veo ningún motivo para tener tal.

Puede ubicar taskbar position y colocar su formulario allí manualmente.

+2

¿La razón por la que di no es suficiente? La posición de inicio predeterminada de Windows debe respetar el tasbkar si está marcada la casilla "Mantener la barra de tareas en la parte superior de otras ventanas". Consulte OS X. La alternativa es encontrar en qué se establece la preferencia anterior, buscar el monitor en el que se supone que se deben abrir las ventanas de forma predeterminada, descubrir si la barra de tareas está conectada a la ventana y, si es así, calcular manualmente la posición inicial . –

Cuestiones relacionadas