我在Windows窗體應用程序中有幾個面板,他們分爲兩列,最多4行,最多8個面板。每個面板中包含的元素數量在運行時都會發生變化,所以不要在監視器上浪費時間,我將它們全部設置爲自動調整大小。問題是,我不知道如何讓它們保持正確放置,比如當第一個縮小時,其他三個縮小,所以它們之間沒有太多空間。保持面板之間的距離相同
回答
嘗試使用TableLayoutPanel
或FlowLayoutPanel
(或可能甚至是SplitContainer
)。它們對於這類任務都非常有用。您可以在工具箱的Containers
部分找到它們。您可以通過適當設置面板的邊距來保持正確的距離。 TableLayoutPanel
爲您提供了調整行和列(絕對或百分比大小或自動)大小的不同選項。通過使用面板和控件的Dock
或Anchor
屬性,您可以在調整大小或添加和刪除控件時獲得動態行爲。
您可能還需要設置控件的MinimumSize
和MaximumSize
屬性。
您可以添加控件這樣的0
int count = tableLayoutPanel1.Controls.Count;
int newColumn = count % 2;
int newRow = count/2;
if (newRow >= tableLayoutPanel1.RowCount) {
tableLayoutPanel1.RowCount++;
// Set appropriate row style
tableLayoutPanel1.RowStyles.Add(new RowStyle { SizeType = SizeType.AutoSize });
}
var newControl = new Button { Dock = DockStyle.Fill };
tableLayoutPanel1.Controls.Add(newControl, newColumn, newRow);
@ lazyberezovsky:這是一個視覺的東西,不是一個代碼的東西。如果面板具有正確的寬度,它們將在「FlowLayoutPanel」中的兩列之後自動換行到下一行。 –
是的,這不是代碼的事情,但說你可以使用TableLayoutPanel控件定位就像說你可以使用Linq從數據庫加載客戶數據:) –
@lazyberezovsky:我爲'TableLayoutPanel'添加了一個例子。 –
- 1. Spritekit - 提高速度並保持精靈節點之間的距離相同?
- 2. 如何保持兩個流體隔板之間的間距?
- 3. RTT和距離之間的相關性
- 4. 相機和物體之間的距離?
- 5. 點之間的相等距離高圖
- 6. JavaFX兩個圓之間的距離並保持更新屬性
- 7. 確保相鄰點之間的最小距離
- 8. 上層元素和堆棧面板之間的距離
- 9. Angular-nvd3:x尺度上的數據之間的距離相同
- 10. 使每個div之間有相同的距離使用HTML?
- 11. 距離之間的兩個
- 12. Android之間的距離
- 13. 點之間的距離
- 14. 地址之間的距離
- 15. 車牌之間的距離
- 16. A,B之間的距離
- 17. 旋轉屏幕時如何保持相同的間距? (Autolayout)
- 18. PCL:拼合地平面但保持距離地面
- 19. JS/html:保持一定的距離錨?
- 20. 五個按鈕保持相等距離的圓形旋轉
- 21. 在可變距離0-1保持時間相等的情況下遞增
- 22. 在畫布上拖動多個項目並保持相同的距離
- 23. 在d3圖表中保持座標軸刻度之間的距離
- 24. 試圖找出兩點之間的輻射,但距離值保持不變
- 25. 如何保持兩個線之間的30˚距離錨定在一個點
- 26. 道路距離,兩地之間的實際距離
- 27. 元素在兩點之間的距離和距離
- 28. 查找曼哈頓距離中兩組之間的距離
- 29. 如何獲得距離眩暈兩點之間的距離
- 30. 計算相同起始目的地和結束目的地之間的距離
你現在使用的面板放置在4行2列控什麼?如果第一個面板縮小 - 哪些面板應該更改它們的大小 - 面板是從當前行還是從列? –