2016-04-04 66 views
0

如何在運行時使用FormBorderStyle == FixedSingle更改窗體大小?更改表單大小 - FormBorderStyle

使用此代碼

private void Form1_Deactivate(object sender, EventArgs e) 
{ 
    this.Size = new Size(this.Width, 0); 
} 

財產FormBorderStyle ==可調整大小,everysing是確定的,而形式如下 enter image description here

但是,如果屬性設置爲FixedSingle或FixedToolWindow形式的某些部分表現。 enter image description here

如何刪除這部分表格?

+2

等一下,退一步。你爲什麼試圖調整這種形式? Hide()'有什麼問題?你想做什麼? – Luaan

+0

Hide()方法已經實現。第二種方法是將頭部中的表單捲起來。 – Cl3r1k

+0

我不知道你想說什麼。您想在表單停用時將表單摺疊爲標題嗎? – Luaan

回答

0

它似乎不是一件容易修復的東西 - 只要窗體獲得與FormBorderStyle.FixedSingle(和朋友)關聯的窗口樣式,客戶區就會展開。我試圖改變客戶端計算方式(WM_NCCALCSIZE和朋友),但我可以使其更小的唯一方法是重新繪製非客戶端區域 - 根據您的具體情況,這可能或可能不是一個可行的選項。

但是,您可以將邊框樣式更改爲相當大,同時適當地設置MaxSizeMinSize - 這將防止調整大小,同時保持表單的客戶區域「不可見」。對於獎勵積分,您可以處理WM_NCHITTEST以完全避免鼠標調整大小(只是假裝調整大小手柄實際上是標題/客戶區域)。當您再次激活表單時,只需恢復舊的樣式和設置即可。