2014-09-04 11 views
-4

我創造了VS2012一個非常小的形式,看起來像這樣的設計師爲什麼這種形式在運行時比在設計時要寬得多?

enter image description here

但是當我運行的應用程序的形式將擴大規模,並期待喜歡這樣的:

enter image description here

任何想法爲什麼?我嘗試了不同的表單邊框樣式,結果仍然相同。

如果您還試圖看到您獲得相同的結果,我將不勝感激。

我有一種感覺,在VS中有一個窗體的最小大小限制。在這種情況下,問題在於IDE爲何讓用戶在該限制下重新調整表單的大小。

在鏈接所謂的重複答案(這是不工作)誰回答說:「我在Windows 8.1上測試我不能承諾它可以在所有Windows版本上工作」並猜猜看,我有窗口7,並回答不工作! -

+1

這是標記爲適度,以決定是否應該重新打開,請解釋爲什麼它不是重複?它看起來相關。 – scragar 2014-09-05 16:41:59

+0

這是SO的大問題。由於OP我嘗試了答案,並且仍然變得更大。所以這個答案不適合我。僅僅因爲某人在這裏有很多要點,他的回答都不起作用,你應該盲目地解決問題。 – 2014-09-05 19:17:50

+0

在鏈接所謂的重複答案(這是不工作)誰回答說:「我在Windows 8.1測試我不能保證它可以在所有Windows版本」 並猜猜看,我有Windows 7和答案不工作! – 2014-09-05 19:19:17

回答

4

窗口的最小尺寸基於最小可用標題欄。爲圖標和最小/最大/關閉按鈕留下足夠空間。即使是沒有一個窗口的,也是一個bug。但是,解決方法很簡單,您可以在Load事件中更改大小。由於視頻DPI設置,請注意重新縮放。大致爲:

protected override void OnLoad(EventArgs e) { 
     this.ClientSize = new Size(
      numericUpDown1.Right + numericUpDown1.Left, 
      numericUpDown1.Bottom + numericUpDown1.Top); 
     base.OnLoad(e); 
    } 
+0

如果我有Base.Onload(e)我得到'this.ClientSize = new Size的異常( numericUpDown1.Right + numericUpDown1.Left, numericUpDown1.Bottom + numericUpDown1。最佳); {無法評估表達式,因爲當前線程處於堆棧溢出狀態。} – 2014-09-04 19:07:36

+0

您是否嘗試過您的解決方案? – 2014-09-04 19:07:52

+0

如果我評論Base.Onload表單仍然過大。 – 2014-09-04 19:08:36

-1

人們還可以在設計設置MinimumSize1;1(而不是默認的0;0)。

編輯: 我已經在VS2010和VS2013在Windows 7上測試了這個,並且使用了不同的目標框架(在VS13,3.5,4.0,4.5,4.5.1中)。 以下示例代碼適用於所有情況。如果有人能確認哪些系統無法正常工作,我歡迎任何意見。

private void button1_Click(object sender, EventArgs e) 
    { 
     using (Form frm = new Form()) 
     { 
      frm.FormBorderStyle = FormBorderStyle.None; 

      // -> size is 80,80 with this line, 
      // and wider if this line is commented out 
      frm.MinimumSize = new Size(1, 1); 

      frm.BackColor = Color.Orange; 
      frm.Size = new Size(80, 80); 
      frm.Click += (s, e2) => frm.Close(); 
      frm.ShowDialog(this); 
     } 
    } 
+0

你是否真的打算嘗試你的解決方案嗎?不,它不起作用 – 2014-09-05 13:43:53

+1

它並沒有真正'困擾'我很多,但是,我確實嘗試過。 – KekuSemau 2014-09-05 14:15:35

相關問題