3

使用 SplitContainer,用户可以调整控件两侧的大小。但仅限于两个部分。

使用 TableLayoutPanel,您可以拥有无​​限的行和列。不幸的是,用户不能拖动任何这些部分。

我怎样才能两全其美;SplitContainer 中的中间栏的“可拖动性”以及 TableLayoutPanel 允许的超过 2x1 部分的能力?

如果 Winforms 不允许这样做,也许那里有商业组件?我知道我在一些非.NET 程序中看到过这种高级控件。

4

2 回答 2

3

在第一个的一半内嵌入另一个 SplitContainer。

请记住,您可以拆分水平和垂直。我相信这样可以生成很多整洁的布局。

于 2015-06-29T03:59:16.697 回答
1

建立在@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#

于 2017-11-23T12:46:57.683 回答