2010-11-12 155 views

Respuesta

12

No son necesarios trucos especiales. Establezca la propiedad FormBorderStyle en Ninguna, WindowState en Maximized.

+3

Cabe mencionar que no se necesitan "trucos especiales" para ocultar la barra de tareas. Windows reconoce que a las ventanas creadas de este modo les gustaría tener pantalla completa y las coloca en la parte superior de la barra de tareas. – Nick

+0

Excepto que hay un problema, si configura la barra de tareas en "Siempre arriba", oculta la aplicación. Si estoy entendiendo lo que el OP está pidiendo, él quiere que la ventana sea realmente pantalla completa ... además de todo y cubriendo todos los inmuebles del monitor. –

+1

¿Cómo se configura la barra de tareas para "siempre en la parte superior"? No encuentro esta opción en Windows 7 ... – Lars

12

http://www.vesic.org/english/blog/winforms/full-screen-maximize/
Ejemplo: http://www.vesic.org/blog/upload/MaxWinForm.zip

/// <summary> 
/// Selected Win AI Function Calls 
/// </summary> 

public class WinApi 
{ 
    [DllImport("user32.dll", EntryPoint = "GetSystemMetrics")] 
    public static extern int GetSystemMetrics(int which); 

    [DllImport("user32.dll")] 
    public static extern void 
     SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter, 
        int X, int Y, int width, int height, uint flags);   

    private const int SM_CXSCREEN = 0; 
    private const int SM_CYSCREEN = 1; 
    private static IntPtr HWND_TOP = IntPtr.Zero; 
    private const int SWP_SHOWWINDOW = 64; // 0x0040 

    public static int ScreenX 
    { 
     get { return GetSystemMetrics(SM_CXSCREEN);} 
    } 

    public static int ScreenY 
    { 
     get { return GetSystemMetrics(SM_CYSCREEN);} 
    } 

    public static void SetWinFullScreen(IntPtr hwnd) 
    { 
     SetWindowPos(hwnd, HWND_TOP, 0, 0, ScreenX, ScreenY, SWP_SHOWWINDOW); 
    } 
} 

/// <summary> 
/// Class used to preserve/restore state of the form 
/// </summary> 
public class FormState 
{ 
    private FormWindowState winState; 
    private FormBorderStyle brdStyle; 
    private bool topMost; 
    private Rectangle bounds; 

    private bool IsMaximized = false; 

    public void Maximize(Form targetForm) 
    { 
     if (!IsMaximized) 
     { 
      IsMaximized = true; 
      Save(targetForm); 
      targetForm.WindowState = FormWindowState.Maximized; 
      targetForm.FormBorderStyle = FormBorderStyle.None; 
      targetForm.TopMost = true; 
      WinApi.SetWinFullScreen(targetForm.Handle); 
     } 
    } 

    public void Save(Form targetForm) 
    { 
     winState = targetForm.WindowState; 
     brdStyle = targetForm.FormBorderStyle; 
     topMost = targetForm.TopMost; 
     bounds = targetForm.Bounds; 
    } 

    public void Restore(Form targetForm) 
    { 
     targetForm.WindowState = winState; 
     targetForm.FormBorderStyle = brdStyle; 
     targetForm.TopMost = topMost; 
     targetForm.Bounds = bounds; 
     IsMaximized = false; 
    } 
} 
+6

Tengo que amar votaciones negativas de personas "anónimas". :) –

+0

Probablemente porque nunca querría que una aplicación de pantalla completa esté siempre en la parte superior ... –

4

Kiosk mode son las palabras que desea utilizar para una búsqueda.

form.MaximizeBox = false; 
form.MinimizeBox = false; 
form.TopMost = true; 
form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
form.WindowState = System.Windows.Forms.FormWindowState.Maximized; 
+6

Cuando 'BorderStyle' está establecido en 'Ninguno', no es necesario deshabilitar maximizar y minimizar cuadros. Cuando 'BorderStyle' es 'Ninguno', se elimina todo el encabezado de la ventana y eso incluye los cuadros de minimizar, maximizar y cerrar. –

+0

Es bueno saberlo, gracias. – Lars

0

Para hacer una aplicación a pantalla completa que tiene que hacer algo como esto ...

this.FormBorderStyle = FormBorderStyle.None; 
this.WindowState = FormWindowState.Maximized; 

este es el nombre del formulario.

Cuestiones relacionadas