2009-02-02 50 views
3

我有具有用戶控制: a)在所述頂部上的按鈕面板(它總是必須是可見的) b)用動態添加和重新調整大小在運行時控制的面板。控件可以是很多的,所以面板必須是可滾動的。具有靜態和動態內容的WinForms用戶控件的最佳佈局?

此用戶控件將託管在表單中,並具有以下要求: a)表單的初始大小將嘗試適合動態內容的最大部分。 b)關於改變表單大小,控制必須被重新調整大小相應。

我已經打了不同的固定,對接,並自動調整大小和我不太得到它在我想要的方式工作。有時候,滾動是弄亂了,有時候是另一回事。

什麼樣的組合錨,對接,並且面板,用戶控件的自動調整大小的,形式可以很好的工作,以達到預期的結果?

+2

包含您的表單 - 呈現和所需呈現的屏幕截圖可能會有幫助。 – Cerebrus 2009-02-02 13:59:43

回答

0

不知道你的問題的具體情況,我發現多個填充停靠的拆分容器與一個固定的面板和/或一個固定的滑塊通常會創建一個非常方便的調整大小的體驗。您也可以非常有效地摺疊面板。

1

我會用表格佈局面板去。您可以在一列中指定兩行,其中按頂部的按鈕的確切大小,然後用底部填充其餘列。然後爲該區域中的動態內容放置一個普通面板或一個flowlayout面板。

2

我成功地達到了要求。這是我的解決方案:

動態面板錨定在控件的頂部和底部。它不AutoSize,它會在內容更改後手動更改它的MaximumSize和PreferredSize。

形式主機使用形式:通知對preferredHeight

 cntrl.AutoSize = true; 
     cntrl.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 
     cntrl.Dock = System.Windows.Forms.DockStyle.Fill; 

的形式訂閱自定義控件的事件,並相應地改變了自己的身高。

相關問題