2011-09-20 166 views
48

如何刪除窗體頂部的藍色邊框? (我不知道它的確切名字。)刪除Windows窗體中的標題欄

+2

它被稱爲TitleBar,你可以隱藏它將表單的邊框樣式屬性更改爲無邊框或無。 –

回答

103

您可以設置屬性FormBorderStyle首屈一指的設計師, 或代碼:

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

有一個錯字。它是'FormBorderStyle':) – ty812

10

設置窗體的FormsBorderStyleNone

如果這樣做,這取決於您如何實現窗口的拖動和關閉功能。

55

如果Blue Border thats on top of the Window Form你的意思是titlebar,制定表格ControlBox屬性falseText屬性爲空字符串(「」)。

這裏有一個片段:

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

你的解決方案比將邊框樣式設置爲None更有優勢,因爲...它會使邊框完整無缺:) +1 – Spook

+0

不知何故,如果通過「FormBorderStyle.None」執行操作,以某種方式在窗體上繪製(OnPaint在一個將Dock的'Dock'設置爲'Fill'的picturebox中設置圖像),直到我改變了FormBorderStyle.None的邊框設置,但這樣繪圖仍然適用於我:) – DrCopyPaste

+0

@Spook:我打算去問一個新的線程:) – Jack

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

而且這段代碼添加到您的形式,以使其可拖動依然。 https://jachman.wordpress.com/2006/06/08/enhanced-drag-and-move-winforms-without-having-a-titlebar/

我們擺脫標題欄:

構造函數(即調用的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; 
} 

該代碼是前右只是將它加入但仍然有一個邊界合併其他響應的代碼:

this .ControlBox = false;

this.Text = String.Empty;

與此行:

this.FormBorderStyle = FormBorderStyle.FixedSingle;


把那些3行代碼到窗體的onload事件,你應該有一個很好的「浮動」的形式可拖動與窄邊框(使用FormBorderStyle.None如果你想無邊框)。