7

我发现 c# (.net 2.0) 中的表格布局面板非常原始。我想让我的用户在表格布局面板中调整列的大小,但没有现成的选项可以这样做。有没有办法至少找出光标是否直接在单元格的任何边界上,如果是,哪个单元格在它下面?可能有这些信息,我们至少可以尝试通过代码调整该行/列的大小。帮我找,

  • 光标是否直接位于单元格的任何边框上
  • 哪个单元格在其下方(仅在第一个问题有答案时适用)

非常感谢,

苏达桑·斯里尼瓦桑

4

2 回答 2

10

如果您的布局不是过于复杂,也许您可​​以通过使用SplitContainer控件来实现您想要的效果?不幸的是,每个 SplitContainer 只有两个“单元格”,但您可以在另一个 SplitContiner 面板中嵌入一个 SplitContainer 以获得更多可调整大小的单元格:

┌──────────────────┐
│┌─────┬──────────┐│
││     │          ││
││     │          ││
│└─────┴──────────┘│
├──────────────────┤
│┌──────────┬─────┐│
││          │     ││
││          │     ││
│└──────────┴─────┘│
└──────────────────┘

好的,所以 ASCII 艺术从来都不是我的强项之一,但我认为你明白了 ;o)

于 2009-06-11T11:08:35.830 回答
1

建立在@Fredrik Mörk 的解决方案之上

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

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

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

于 2017-11-23T12:50:58.160 回答