代码之家  ›  专栏  ›  技术社区  ›  sudarsanyes

C中可调整大小的表格布局面板#

  •  7
  • sudarsanyes  · 技术社区  · 16 年前

    我发现C(.NET 2.0)中的表布局面板非常原始。我希望允许我的用户调整表布局面板中的列的大小,但没有现成的选项可以这样做。是否至少有一种方法可以确定光标是否直接位于单元格的任何边框上,如果是,那么下面是哪个单元格??可能有此信息,我们至少可以尝试通过“代码”调整该行/列的大小。帮我找到,

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

    多谢,

    苏达桑-斯里尼瓦桑

    2 回复  |  直到 16 年前
        1
  •  8
  •   Jazimov    7 年前

    如果你的布局不太复杂,也许你可以通过使用 SplitContainer 控制?不幸的是,每个splitcontainer只有两个“单元格”,但您可以将splitcontainer嵌入另一个splitcontainer面板中,以获得更大的单元格大小:

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

    好吧,所以ascii艺术从来不是我的强项之一,但我认为你明白我的意思;o)

        2
  •  1
  •   tsemer    7 年前

    建筑物顶部 @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 .

    推荐文章