嗨,我正在使用Panel
來保存控件列表(用戶定義)。我添加面板的方式是,在將其添加到面板之前,我基於Panel.Controls.Count
設置控件的位置。添加到具有位置的可滾動面板
comRec.Location = new Point(comRec.Location.X, panel1.Controls.Count * 25);
panel1.Controls.Add(comRec);
現在,這工作很好,看起來完全是我想要的方式。但是,一旦我們達到了窗口的限制,AutoScroll
啓用(我確實需要)。現在,如果用戶要滾動到Panel
的底部,這最終會改變面板中每個控件的位置。而不是我的第一個comRec.Location
是(0,0),它是類似於(0,-219)。所以,現在,當用戶添加另一個對象時,它會在對象之間創建一個巨大的差距。
我的問題是這樣的,最好的方式是用滾動條來說明位置的變化,並且仍然使用我的添加系統。我假設必須檢查滾動條的值並使用它來確定位置。
此外,有更好的方式來顯示控件列表?我應該使用Panel
嗎?
這看起來像它的伎倆!但是,FlowDirection屬性有點令人困惑。當您打開AutoScroll時,您需要使用LeftToRight而不是TopDown作爲垂直滾動面板。 – 2011-03-25 17:27:01
[TableLayoutPanel](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.tablelayoutpanel.aspx)也值得一看。 – Justin 2011-03-25 17:28:03
因爲我已經有了一個usercontrol,它在內部處理所有的值,我喜歡FlowLayoutPanel更適合我的情況,但感謝替代方案。在未來的發展過程中,我會牢記這兩點。 – 2011-03-25 17:30:49