c#winform 关于页面大小与控件大小的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#winform 关于页面大小与控件大小的问题相关的知识,希望对你有一定的参考价值。
窗体页面设置了 windowState的Maximized的属性。打开软件肯定是最大屏幕,根据显示屏分辨率自动调整最大化。但是这样一来,页面的控件就出现了大小问题。如果我现在是19寸显示器开发的软件,窗体页面最大化没问题。我可以把控件手动拉到需要的大小。但是,换成其它分辨率的显示器,窗体大小是最大化了。但是我手动拖拽的控件大小不会随着显示器大小变化,这样就出现了空白区域。请问这样的问题该如何解决。当然我可以设置窗体大小的长宽,定义好这些。但是换成别的显示器,就不能做到最大化。谢谢大家来一起探讨这个问题。
窗体中有AutoScaleMode属性,默认值为Font,意思就是当更改系统字体时,窗体和控件的缩放标准。按照你说的,换分辨率的情况下,你可以将此属性设置为Dpi,当更改分辨率时,窗体和控件按照这个标准缩放。
------------------------------------
至于你说的空白区域,那是因为窗体控件的位置及大小都是绝对的,窗体的大小变化影响不到控件。
不过你可以设置控件的Anchor属性,Top,Left,Right,Bottom,这四个属性说明该控件相对于窗体四边该怎样变化位置或大小。这个需要你自己亲自调试一下,才能更方便的应用。 参考技术A 方法很多,
1. 将某个或数个控件的dock属性设为fill。比如像资源浏览器一类的,右边放个listview,fill以后随窗体大小而变
2. 在调整大小的事件里手动改各控件的大小,一般按比例缩放
3. 用tablelayout或flowlayout布局,这两个也是能自调节的。本回答被提问者采纳 参考技术B anchor属性, 参考技术C 可以自己设置还有一个方式就是停靠
C# WINFORM 控制调整大小和加载问题
【中文标题】C# WINFORM 控制调整大小和加载问题【英文标题】:C# WINFORM ,CONTROLS RESIZING AND LOADING PROBLEM 【发布时间】:2021-12-09 16:26:15 【问题描述】:我已经构建了一个新应用程序,其中包含一些基本控件,例如功能区作为父级,其他页面作为子级 但正如您在 GIF 中看到的那样,我正面临 Forms 缓慢加载和调整大小的问题。 每次我打开这个表单时,它的控件都会调整 3 到 4 倍。 请问有什么解决办法?????? :( .
【问题讨论】:
您应该提供有关表单初始化/加载的更多信息 我仍然没有在编码中做任何事情。它的设计问题。但是没有开始编码。 你能在按钮的点击事件上写this.DoubleBuffered = true;
吗(在功能区上),或者可能在用户控件的页面加载上?
【参考方案1】:
我得到了解决方案。
每次我点击时,父表单都会生成一个新表单,而前一个表单仍然存在并且没有关闭,因此一次打开了这么多相同的表单。
我试试这个解决方案,
private void btnCompanysetup_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
Form frm = new frmCompanySetup();
if (Application.OpenForms.OfType<frmCompanySetup>().Count() == 1)
frm.BringToFront();
if (Application.OpenForms.OfType<frmCompanySetup>().Count() == 0)
frm.MdiParent = this;
frm.Show();
感谢所有这些回复。
【讨论】:
以上是关于c#winform 关于页面大小与控件大小的问题的主要内容,如果未能解决你的问题,请参考以下文章
c#winform程序开发,不同屏幕尺寸,分辨率,界面 控件 显示问题
c#winform里把两个panel里面的值保存下来,还有怎么在运行中改变panel的大小
c#winform,关于进度条当前进度的计算。求助,大侠进,在线等...