我在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列控什么?如果第一个面板缩小 - 哪些面板应该更改它们的大小 - 面板是从当前行还是从列? –