2011-09-20 32 views
48

¿Cómo puedo eliminar el borde azul que está en la parte superior del formulario de ventana? (No sé el nombre de ella exactamente.)Eliminar la barra de título en Windows Forms

+2

se llama TitleBar y probablemente puede ocultarlo cambiando la propiedad de estilo de borde del formulario a ningún borde o ninguno. –

Respuesta

103

Usted puede establecer la propiedad FormBorderStyle a ninguno en el diseñador, o en el código:

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
+3

Hay un error tipográfico. Es 'FormBorderStyle' :) – ty812

10

Establecer FormsBorderStyle del formulario para None.

Si lo hace, le corresponde a usted cómo implementar la funcionalidad de arrastrar y cerrar de la ventana.

55

si por Blue Border thats on top of the Window Form quiere decir titlebar, conjunto Formas ControlBox propiedad a false y Text propiedad a cadena vacía ("").

He aquí un fragmento:

this.ControlBox = false; 
this.Text = String.Empty; 
+6

Su solución tiene la ventaja de establecer el estilo de borde en Ninguno, porque ... deja el borde intacto :) +1 – Spook

+0

Y de alguna manera, si lo hace a través de 'FormBorderStyle.None', lo deshabilita de dibujar en la forma de alguna manera (OnPaint establece una imagen en un cuadro que tiene su 'Dock' establecido en' Fill'), funcionó bien hasta que cambié la configuración del borde con 'FormBorderStyle.None', pero de esta manera, el dibujo todavía funciona para mí :) – DrCopyPaste

+0

@Spook: Iba a subir un nuevo hilo para preguntar exactamente esto :) – Jack

8
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None 
16

También añadir este fragmento de código a su forma para permitir que sea posible arrastrar todavía.

Sólo tiene que añadir justo antes del constructor (el método que llama a InitializeComponent()


private const int WM_NCHITTEST = 0x84; 
private const int HTCLIENT = 0x1; 
private const int HTCAPTION = 0x2; 

/// 
/// Handling the window messages 
/// 
protected override void WndProc(ref Message message) 
{ 
    base.WndProc(ref message); 

    if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT) 
     message.Result = (IntPtr)HTCAPTION; 
} 

Ese código es de: https://jachman.wordpress.com/2006/06/08/enhanced-drag-and-move-winforms-without-having-a-titlebar/

ahora para deshacerse de la barra de título pero todavía tiene un borde combina el código de la otra respuesta:

esto .ControlBox = falso;

this.Text = String.Empty;

con esta línea:

this.FormBorderStyle = FormBorderStyle.FixedSingle;


Ponga esas 3 líneas de código en el evento OnLoad del formulario y usted debe tener una forma agradable 'flotante' que pueden arrastrarse con un borde fino (uso FormBorderStyle.None si no desea la frontera).

Cuestiones relacionadas