Winforms控件结合SplitContainer和TableLayoutPanel的最佳组合

时间:2015-06-29 03:57:10

标签: c# winforms tablelayoutpanel splitcontainer

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

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

我怎样才能拥有两全其美的优势; SplitContainer中间栏的'draggable-ness'和TableLayoutPanel允许的超过2x1段的能力?

如果Winforms不允许,那么可能还有一个商业组件?我知道我在一些非.NET程序中看到过这种高级控件。

2 个答案:

答案 0 :(得分:3)

将另一个SplitContainer嵌入第一个的一半。

请记住,您可以分割水平和垂直。我确信可以通过这种方式生成很多简洁的布局。

答案 1 :(得分:1)

建立在@Brody's solution之上:

嵌入另一个SplitContainer之后,@ Wolf5提到的唯一缺点是它们不会自动调整大小,因此您很快就会丢失表格视图。解决方案可以是为每个适用的SplitContainer设置SplitterMoved事件处理程序:

private void mySplitContainer_SplitterMoved(object sender, SplitterEventArgs e) {
  mOtherySplitContainer.SplitterDistance = e.SplitX;
}

如果您的SplitContainer是水平使用e.SplitX,如果它垂直使用e.SplitY

建议重复此其他问题:Resizable table layout panel in c#