2011-09-20 15 views
48

Come rimuovere il bordo blu sopra il modulo finestra? (Non so il nome di essa esattamente.)Rimuovere la barra del titolo in Windows Form

+2

si chiama TitleBar e probabilmente si può nascondere cambiando la proprietà di stile del bordo del modulo a nessun bordo o nessuno. –

risposta

103

È possibile impostare la proprietà FormBorderStyle a nessuno nella finestra di progettazione, o nel codice:

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

C'è un errore di battitura. È 'FormBorderStyle' :) – ty812

10

Impostare FormsBorderStyle del Modulo per None.

Se lo fai, sta a te decidere come implementare la funzionalità di trascinamento e chiusura della finestra.

55

se per Blue Border thats on top of the Window Form intendi titlebar, insieme Forms ControlBox proprietà false e Text proprietà su una stringa vuota ("").

Ecco un frammento:

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

La tua soluzione ha il vantaggio di impostare lo stile del bordo su Nessuno, perché ... lascia intatto il bordo :) +1 – Spook

+0

E in qualche modo, se lo fai tramite 'FormBorderStyle.None' ti disabilita da disegnando il modulo in qualche modo (OnPaint imposta un'immagine in una picturebox che ha il suo 'Dock' impostato su' Fill'), ha funzionato bene fino a quando ho cambiato l'impostazione del bordo con 'FormBorderStyle.None', ma in questo modo, il disegno funziona ancora per me :) – DrCopyPaste

+0

@Spook: stavo per iniziare una nuova discussione per chiedere esattamente questo :) – Jack

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

anche aggiungere questo pezzo di codice al modulo per permettere che sia ancora trascinabile.

Basta aggiungere a destra prima del costruttore (il metodo che chiama 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; 
} 

Quel codice è da: https://jachman.wordpress.com/2006/06/08/enhanced-drag-and-move-winforms-without-having-a-titlebar/

Ora per sbarazzarsi della barra del titolo ma hanno ancora un bordo che combina il codice dell'altra risposta:

.ControlBox = falso;

this.Text = String.Empty;

con questa linea:

this.FormBorderStyle = FormBorderStyle.FixedSingle;


Mettere quelle 3 righe di codice nell'evento OnLoad della maschera e si dovrebbe avere una bella forma 'galleggiante' che è trascinabile con un bordo sottile (uso FormBorderStyle.None se non si desidera confine).

Problemi correlati