【问题标题】:C# splitContainer1 resize child controlC# splitContainer1 调整子控件大小
【发布时间】:2017-10-29 23:16:48
【问题描述】:

我有一个 splitContainer。当我如下移动拆分器时,我想调整 splitContaner 面板内的表单大小以进行缩放。但是我的表格没有被重绘。任何建议,非常感谢!

    private void splitContainer1_SplitterMoved(System.Object sender, System.Windows.Forms.SplitterEventArgs e)
    {
        // Define what happens when the splitter is no longer moving.
        Cursor.Current = System.Windows.Forms.Cursors.Default;
        statictisTableDisplayForm1.ClientSize = new Size(statictisTableDisplayForm1.Width, splitContainer1.SplitterDistance);
        statictisTableDisplayForm1.Invalidate();
        statictisTableDisplayForm1.Refresh();
        Refresh();
    }

【问题讨论】:

  • 您是说要调整拆分容器内的控件大小,但您的代码设置了某种形式的大小。您能否详细描述一下您有哪些控件,这些控件的位置以及您希望在拆分器移动后发生什么
  • 哦,对不起!我在 splitContainer 面板 1 中的控件是一个表单。我希望当向上移动拆分器时,表单将被调整为更小而不是被拆分器主干
  • 为什么放一个表格而不是一个面板???如何?这会导致错误。 '这里不能添加顶级控件'。对于 Panel 或 UserControl 等,您可以设置 Dock=Fill, btw..
  • 只需将您的表单设置为最大化,它将随其容器调整大小...

标签: c# winforms splitcontainer


【解决方案1】:
  1. 表单应该是代表应用程序窗口的顶级控件。您不应该将表单作为控件嵌入到其他表单中(好吧,除非没有其他选择)。
  2. 通常,您不应手动调整控件的大小和/或移动控件。有几个布局选项允许在容器大小发生变化时自动调整控件的大小:AnchorDock

所以最好创建一个 UserControl,它将包含您的 StatictisTableDisplayForm 的控件和逻辑,并将其放置到 SplitContainer 面板,并将 Dock 设置为 Fill。当您移动拆分器时,这将自动调整用户控件的大小。

注意:如果您也必须单独使用StatictisTableDisplayForm,那么只需将相同的用户控件放置在此表单中即可。

【讨论】:

  • 谢谢你,兄弟。我需要更多地了解 Dock 和 Anchor
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 2012-07-16
相关资源
最近更新 更多