2009-08-03 54 views
15

我正在開發Windows窗體應用程序(.NET 2.0,VS 2005)。我有一個表格,基本上包含一個可以動態調整表格大小的面板:當包含的控件太大時,如何使滾動條出現在可調整大小的面板中?

this.panel1.Dock=DockStyle.Fill; 

此面板僅用作容器。在運行時,一個自定義的控制將被添加:

UserControl uc=new UserControl(); 
panel1.Controls.Add(uc); 
uc.Dock=DockStyle.Fill; 

由於這種自定義控件具有最小尺寸的要求,我想滾動條出現在含面板上,如果它變得太小,無法顯示整個控制:

this.panel1.AutoScroll=true; 

這不起作用。我試圖使用Anchor屬性而不是Dock屬性來調整面板大小,但無濟於事。

回答

24

不要停靠您的用戶控件。改用Anchor屬性。 (錨定所有四面)。 設置您的用戶控件的MinimumSize屬性 設置面板的AutoScrollMinSize屬性

除非設置其AutoScrollMinSize屬性,否則面板的滾動條不會出現。設置用戶控件的Dock to Fill似乎隱藏了面板的滾動條。

+10

只要AutoScrollMinSize設置(http://social.msdn.microsoft.com/Forums/),Dock屬性適用於面板和用戶控件EN-US /的WinForms /線程/ 56267eb1-25af-4df2-82a3-0498563c7eef)。 – Mac 2009-08-04 15:16:54

2

後的InitializeComponent在對話框的形式,我這樣做,它似乎工作:

tableLayoutPanel1.AutoScrollMinSize = tableLayoutPanel1.GetPreferredSize(new Size(1, 1)); 

我有一大堆的表中的子面板。所有行和列都設置爲AutoSize。出於某種原因,控件不夠智能,不能告訴滾動控件它的首選大小。

1

Panel.AutoScroll = * True works - NOW!我玩了上面的想法,面板和用戶控制,最後重新設置爲默認值,在面板上設置Autoscroll,以及...瞧!不知何故,它再次運作...去圖...

相關問題