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】:-
表单应该是代表应用程序窗口的***控件。您不应该将表单作为控件嵌入到其他表单中(好吧,除非没有其他选择)。
通常,您不应手动调整控件的大小和/或移动控件。有几个布局选项允许在容器大小发生变化时自动调整控件的大小:
Anchor
、Dock
。
所以最好创建一个 UserControl,它将包含您的 StatictisTableDisplayForm
的控件和逻辑,并将其放置到 SplitContainer 面板,并将 Dock
设置为 Fill
。当您移动拆分器时,这将自动调整用户控件的大小。
注意:如果您也必须单独使用StatictisTableDisplayForm
,那么只需将相同的用户控件放置在此表单中即可。
【讨论】:
谢谢你,兄弟。我需要更多地了解 Dock 和 Anchor以上是关于C# splitContainer1 调整子控件大小的主要内容,如果未能解决你的问题,请参考以下文章
C# 如何调整DataTable的大小?有人说调属性,但是MicroSoft Visual 2010 C# 没有DataTable控件。
c# winform groupbox上动态生成的控件,如何让控件随着分辨率变化而自动调整位置和大小