2010-01-22 40 views
1

我有一個System.Windows.Forms.Form,我需要在運行時設置客戶區的大小。奇怪的是,即使當我將ClientSize property設置爲800x600時,該區域的右側和底側也會縮小4個像素,這會導致我的內容在兩個方向上都會縮小4個像素。Form.ClientSize中沒有渲染大小的窗體客戶區大小

在Windows XP和Windows Classic主題中都會出現此行爲。

從我對MSDN文檔的理解,這應該做我想做的 - 但事實並非如此。

的 形式的客戶區的大小是不包括 邊界和標題欄的形式的大小。

示例代碼瀏覽:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     this.ClientSize = new Size(800, 600); 
    } 
} 

是怎麼回事?我注意到the comments of an answer to another question這是發生在別人身上。有什麼方法可以可靠地設置客戶區的大小?

+1

我只是試過這個代碼(在VS2008,Win7上),它沒有任何額外的像素(在屏幕截圖上測量)正確執行。也許你使用的特定主題有被視爲邊界的隱形部分? – 2010-01-22 03:01:53

+1

您的表單上是否設置了最大高度和最大寬度?否則,尺寸設置的工作非常可預測。 – 2010-01-22 03:02:29

+0

感謝您的建議。我嘗試設置最大/最小尺寸以及Windows XP和Windows Classic主題。我仍然看到4像素的形狀太小而不能在右邊和底部。 :( – 2010-01-22 03:28:51

回答

1

事實證明,我的問題根本不在於Form。窗體中有一個System.Windows.Forms.WebBrowser控件 - 並且有一個邊框。由於WebBrowser控件沒有任何邊框屬性,我沒有懷疑它。