1
我有一個FlowLayoutPanel和一個UserControl。如何將UserControl停靠到FlowLayoutPanel中?
我已經將多個用戶控件添加到FlowLayoutPanel
中,並且我試圖將它們停靠在頂部,因此當我更改FlowLayoutPanel
的大小時,usercontrols的大小(寬度)會相應更改。
我有一個FlowLayoutPanel和一個UserControl。如何將UserControl停靠到FlowLayoutPanel中?
我已經將多個用戶控件添加到FlowLayoutPanel
中,並且我試圖將它們停靠在頂部,因此當我更改FlowLayoutPanel
的大小時,usercontrols的大小(寬度)會相應更改。
您不能在FlowLayoutPanel中放置任何東西,它會被忽略。
查看顯然由微軟團隊發佈的answer here。
他們說:
的FlowLayoutPanel的依賴於最大的控制,以在其內有效地定義列/行。下面的代碼將第一個控件的大小設置爲FLP的寬度,以實現與您想要的類似的佈局。
private void flowLayoutPanel1_Layout(object sender, LayoutEventArgs e)
{
flowLayoutPanel1.Controls[0].Dock = DockStyle.None;
for (int i = 1; i < flowLayoutPanel1.Controls.Count; i++)
{
flowLayoutPanel1.Controls[i].Dock = DockStyle.Top;
}
flowLayoutPanel1.Controls[0].Width = flowLayoutPanel1.DisplayRectangle.Width - flowLayoutPanel1.Controls[0].Margin.Horizontal;
}
關鍵是要使用Layout
事件。
這個解決方案對我來說很重要。您的UserControl必須關閉AutoSize
/保持統一大小。
在我的情況下,我想AutoSize
打開,以便允許用戶控件垂直展開/收縮,同時填充FlowLayoutPanel的寬度。我不得不尋找一個不同的解決方案。但上述可能會幫助你的情況。
感謝你的兄弟^ _^ 我設法通過改變控件的大小,當FlowLayoutPanel的大小改變時,模擬它: 我知道它可能不是最好的解決方案,但它做的工作:D – Hasan