使用 SplitContainer,用户可以调整控件两侧的大小。但仅限于两个部分。
使用 TableLayoutPanel,您可以拥有无限的行和列。不幸的是,用户不能拖动任何这些部分。
我怎样才能两全其美;SplitContainer 中的中间栏的“可拖动性”以及 TableLayoutPanel 允许的超过 2x1 部分的能力?
如果 Winforms 不允许这样做,也许那里有商业组件?我知道我在一些非.NET 程序中看到过这种高级控件。
使用 SplitContainer,用户可以调整控件两侧的大小。但仅限于两个部分。
使用 TableLayoutPanel,您可以拥有无限的行和列。不幸的是,用户不能拖动任何这些部分。
我怎样才能两全其美;SplitContainer 中的中间栏的“可拖动性”以及 TableLayoutPanel 允许的超过 2x1 部分的能力?
如果 Winforms 不允许这样做,也许那里有商业组件?我知道我在一些非.NET 程序中看到过这种高级控件。
在第一个的一半内嵌入另一个 SplitContainer。
请记住,您可以拆分水平和垂直。我相信这样可以生成很多整洁的布局。
建立在@Brody 的解决方案之上:
嵌入另一个 SplitContainer(s) 后,@Wolf5 提到的唯一缺点是它们不会自动一起调整大小,因此您很快就会丢失表格视图。SplitterMoved
一个解决方案可能是为每个适用的 SplitContainer设置一个事件处理程序:
private void mySplitContainer_SplitterMoved(object sender, SplitterEventArgs e) {
mOtherySplitContainer.SplitterDistance = e.SplitX;
}
如果您的 SplitContainer 是水平使用e.SplitX
,如果是垂直使用e.SplitY
。
这个其他问题的建议副本:Resizable table layout panel in c#