C# splitContainer1 调整子控件大小

Posted

技术标签:

【中文标题】C# splitContainer1 调整子控件大小【英文标题】:C# splitContainer1 resize child control 【发布时间】: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.. 只需将您的表单设置为最大化,它将随其容器调整大小... 【参考方案1】:
    表单应该是代表应用程序窗口的***控件。您不应该将表单作为控件嵌入到其他表单中(好吧,除非没有其他选择)。 通常,您不应手动调整控件的大小和/或移动控件。有几个布局选项允许在容器大小发生变化时自动调整控件的大小:AnchorDock

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

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

【讨论】:

谢谢你,兄弟。我需要更多地了解 Dock 和 Anchor

以上是关于C# splitContainer1 调整子控件大小的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何调整DataTable的大小?有人说调属性,但是MicroSoft Visual 2010 C# 没有DataTable控件。

c# winform groupbox上动态生成的控件,如何让控件随着分辨率变化而自动调整位置和大小

SplitContainer - 调整大小时固定面板高度

c#中关于splitContainer控件的用法:如何做到不清除控件就能在panel2中打开一个窗体呢?

C#:锚定面板不会正确调整大小

c#怎样将窗体分为两部分,而且可以随意影藏一部分