2009-06-11 77 views
5

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

  • 光标是否是直接在单元格
  • 哪个小区其下(仅适用,如果第一个问题的答案)

许多感谢的任何边界,

Sudarsan斯里尼瓦桑

+0

嗨sudarsanyes你曾经解决过这个问题吗?我现在面临同样的问题。我的应用程序的用户需要能够在运行时在我的应用程序的tableLayoutPanel中调整行和列的大小 – 2013-07-02 20:36:14

回答

7

如果布局并不复杂,也许你可以通过使用SplitContainer控制达到你想要什么?不幸的是,每一个SplitContainer的将只有两个“细胞”,但你可以嵌入在另一SplitContiner面板SplitContainer中,以获得更多的可调整大小的细胞:

​​

好了,ASCII艺术是从来没有的我更强的技​​能之一,但我想你明白了吧; O)

+0

这不是非常复杂和昂贵吗? [你在ASCII艺术方面真的比我好:D] – sudarsanyes 2009-06-11 11:14:55

0

大厦的顶部@Fredrik Mörk's solution

嵌入另一个SplitContainer的(一个或多个)之后,唯一的缺点是,他们不会自动调整在一起,所以你很快就会失去表格视图。一个解决办法是建立一个SplitterMoved事件处理程序,每个应用的SplitContainer:

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

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