我发现 c# (.net 2.0) 中的表格布局面板非常原始。我想让我的用户在表格布局面板中调整列的大小,但没有现成的选项可以这样做。有没有办法至少找出光标是否直接在单元格的任何边界上,如果是,哪个单元格在它下面?可能有这些信息,我们至少可以尝试通过代码调整该行/列的大小。帮我找,
- 光标是否直接位于单元格的任何边框上
- 哪个单元格在其下方(仅在第一个问题有答案时适用)
非常感谢,
苏达桑·斯里尼瓦桑
我发现 c# (.net 2.0) 中的表格布局面板非常原始。我想让我的用户在表格布局面板中调整列的大小,但没有现成的选项可以这样做。有没有办法至少找出光标是否直接在单元格的任何边界上,如果是,哪个单元格在它下面?可能有这些信息,我们至少可以尝试通过代码调整该行/列的大小。帮我找,
非常感谢,
苏达桑·斯里尼瓦桑
如果您的布局不是过于复杂,也许您可以通过使用SplitContainer控件来实现您想要的效果?不幸的是,每个 SplitContainer 只有两个“单元格”,但您可以在另一个 SplitContiner 面板中嵌入一个 SplitContainer 以获得更多可调整大小的单元格:
┌──────────────────┐
│┌─────┬──────────┐│
││ │ ││
││ │ ││
│└─────┴──────────┘│
├──────────────────┤
│┌──────────┬─────┐│
││ │ ││
││ │ ││
│└──────────┴─────┘│
└──────────────────┘
好的,所以 ASCII 艺术从来都不是我的强项之一,但我认为你明白了 ;o)
嵌入另一个 SplitContainer(s) 后,唯一的缺点是它们不会一起自动调整大小,因此您很快就会失去表格视图。SplitterMoved
一个解决方案可能是为每个适用的 SplitContainer设置一个事件处理程序:
private void mySplitContainer_SplitterMoved(object sender, SplitterEventArgs e) {
mOtherySplitContainer.SplitterDistance = e.SplitX;
}
如果您的 SplitContainer 是水平使用e.SplitX
,如果是垂直使用e.SplitY
。