C# Winform控件的动态缩放
简而言之:我有一个ListView,我想动态地将它扩展到ListView所在的容器中。我是不是太傻了,以至于看不懂,还是这本书没有什么价值?如果没有,有人知道怎么做吗?你要做的是在控件上设置“锚定”。将定位点设置为与希望控件更改大小的方式相对应C# Winform控件的动态缩放,c#,winforms,dynamic,scaling,C#,Winforms,Dynamic,Scaling,简而言之:我有一个ListView,我想动态地将它扩展到ListView所在的容器中。我是不是太傻了,以至于看不懂,还是这本书没有什么价值?如果没有,有人知道怎么做吗?你要做的是在控件上设置“锚定”。将定位点设置为与希望控件更改大小的方式相对应 如果希望控件填充整个空间,只需将“Dock”设置为居中即可。您还可以将dock设置为其他一些功能 您也可以在表单上使用调整大小事件,如下所示: private void Form1_Resize(object sender, EventArgs
如果希望控件填充整个空间,只需将“Dock”设置为居中即可。您还可以将dock设置为其他一些功能 您也可以在表单上使用调整大小事件,如下所示:
private void Form1_Resize(object sender, EventArgs e)
{
int SIDEPAD = 10;
listBox1.Width = Width / 2;
listBox1.Height = Height / 2;
listBox1.Top = (Height - listBox1.Height - button1.Height) / 4;
listBox1.Left = (Width - listBox1.Width - SIDEPAD) / 2;
button1.Width = Width / 2;
button1.Top = ((Height - listBox1.Height - button1.Height) / 4) * 2 + listBox1.Height;
button1.Left = (Width - listBox1.Width - SIDEPAD) / 2;
}
这将使按钮和列表框保持等间距。。。这是一种恼人的程序,但它将确保一切看起来总是好的。(Sidepad是表单边框的宽度;我认为它实际上可能是8…但我觉得它看起来不错。)解决方案是将控件放入
表格布局面板中,并将列表视图的停靠设置为填充。然后,将TableLayoutPanel
的Dock
也设置为Fill
,这样它就可以根据父窗体进行调整。感谢屏幕提供的详细答案,但由于某些原因,它无法工作,它会在消息框中显示类似“错误值”的内容,而我并没有真正确定您在这里谈论的内容。如果您需要更多帮助,请提供显示的确切错误消息或您遇到的行为。此外,听起来您有一个自定义错误处理程序,它显示消息框(不是win forms问题),它来自VS,因为在该错误之后,锚在属性中重置。错误显示为“无效属性值”-屏幕不会告诉您太多,我的工作室在德语上:p@MathiasS. 你试图将其设置为什么值?我试图在每个方向上设置锚定,但每次我选择两个相反的站点时,它都会告诉我错误锚定由于某种原因不起作用,如果我编译,它会在MessageBox(我没有调用)中显示类似“错误值”的内容。Dock会把我的纽扣藏起来。(在该框之后,在VS中再次移除锚点。不要将其全部集中在一个面板中。查看TableLayout和/或SplitPanel。它们是为此而创建的。相关:宽度是表单宽度,您可以将其设置为控件所在容器的宽度。