c# winform 如何让窗体能根据显示器大小自动调节大小呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# winform 如何让窗体能根据显示器大小自动调节大小呢?相关的知识,希望对你有一定的参考价值。

我用22寸显示器做的窗体程序,放到17寸显示器上显示,窗体都显示不下,何解??

参考技术A 不用设置窗体的宽和高 设定了之后无论它在什么电脑上都显示一样的大小、
可以设置WindowState 初始的时候窗体为最大化就行了
参考技术B 既然是WinForms的,窗体的属性里面直接设定为Maximized就可以了追问

你设定最大 也是超出17寸的显示范围了
我定义了这么一句话 this.Location = new Point(Screen.PrimaryScreen.Bounds.Width - 1540, Screen.PrimaryScreen.Bounds.Height - 935);

追答

没有啊,WinForms里面设定最大就是按照显示器的实际大小进行窗口的最大化,不可能超过显示器大小的。我就算是用40寸显示器做的窗体程序也不可能只能在40寸以上的运行啊。要是说不清的话就贴个截图吧。

参考技术C 用width的auto或百分比,不要固定值设定就行了 参考技术D 获取显示器的参数 然后设置宽高 第5个回答  2012-11-20 你把窗口的width和height定死了吧追问

如何不定死呢?

追答

你是手动拖动窗体的大小了么

追问

对啊 this.Location = new Point(Screen.PrimaryScreen.Bounds.Width - 1540, Screen.PrimaryScreen.Bounds.Height - 935);

追答

窗体右键,属性,size

如何方便的保存WinForm窗体控件的位置大小等等配置信息

由于分辨率、屏幕主题、字体大小的不同,窗体显示效果在不同机器上不尽相同。窗体的弹性设计并不能满足多样的需求。为保证在各种情况下,能有满意的效果。窗体的多样显示方式能改变,并且保存、载入配置,显得很重要。我试写了个C#下的类,来做这件事。宗旨是使用方便,并且尽量小巧,载入快速,和可以扩展。

先说使用:

本类针对最常用的需要,如窗体位置、大小。和表格的列宽。进行设计。如果需要,可自行扩展。

这样简单的载入配置信息:

private void FrmMain_Load(object sender, EventArgs e)
{
  SetupColumns(); 
  oConfig.Load_Columns_Width(dgv1, "huodan_frmlisthuo_dgv1");
  oConfig.SetSaveFlag("huodan_frmlisthuo_dgv1", false); 
  oConfig.Load_Form_Size(this, "huodan_frmlisthuo_frm");
  oConfig.SetSaveFlag("huodan_frmlisthuo_frm", false);
}

  保存一般放在关闭窗体前:

private void FrmListHuo_FormClosing(object sender, FormClosingEventArgs e)
{ 
  oConfig.Save_Columns_Width(dgv1, "huodan_frmlisthuo_dgv1"); 
  oConfig.Save_Form_Size(this, "huodan_frmlisthuo_frm"); 
}

并不是每次关闭窗体都会保存,在必要的地方,设置保存请求:

private void dgv1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
{
 oConfig.SetSaveFlag("huodan_frmlisthuo_dgv1",true);
}
private void FrmListHuo_ResizeEnd(object sender, EventArgs e)
{
 oConfig.SetSaveFlag("huodan_frmlisthuo_frm", true);
}

  

类的内容可以到本博空间下载(http://www.pudn.com/downloads768/sourcecode/windows/csharp/detail3046853.html),就不多讲了,明白的不用讲,不明白的讲也是累。

以上是关于c# winform 如何让窗体能根据显示器大小自动调节大小呢?的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 程序自动适应显示器分辨率

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

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

C# WinForm 用户控件的自定义事件问题

如何设置禁止改变“C# WINFORM”窗体大小?

C# winform Label控件 已经自适应实现多行显示了 我现在要取出每行的文本 该怎么做? 求助! 多谢!