根据分辨率来调整form窗口大小

极限时刻 2009-12-15 11:12:21
如题,我想根据不同的显示器的分辨率来变化窗口,不一定是最大化和全屏的,最好是占整个屏幕一定量的百分比来的。
...全文
416 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjay0210 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 panzhaojl 的回复:]
引用 4 楼 mjay0210 的回复:
楼主给分


如果我是楼主,不给你分。 帮助还问别人要分,这样没意思。
你在扩充话题里面要没关系的
[/Quote]

我要分 是因为我的答案绝对能帮他解决问题!
他要答案,我要分。技术分是我在这回答问题的动力,有什么不对吗?用你唧唧歪歪?
panzhaojl 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mjay0210 的回复:]
楼主给分
[/Quote]

如果我是楼主,不给你分。 帮助还问别人要分,这样没意思。
你在扩充话题里面要没关系的
mjay0210 2009-12-15
  • 打赏
  • 举报
回复
改变 窗体大小的时候 尽量使用Size 属性 而不要 直接改变Width height
因为 窗体重绘事件里,是使用的size。
如果你改变两个属性 等于要 重绘两遍 才能得到效果,性能不好。
dezhengwei 2009-12-15
  • 打赏
  • 举报
回复
////MessageBox.Show("" + System.Windows.Forms.SystemInformation.WorkingArea.Width + "");
////MessageBox.Show("" + System.Windows.Forms.SystemInformation.WorkingArea.Height + "");
//int h, w;
//w = System.Windows.Forms.SystemInformation.WorkingArea.Width;
//h = System.Windows.Forms.SystemInformation.WorkingArea.Height+30;
//this.Width = w * 4/5;
//this.Height = h * 4/5;
//MessageBox.Show(""+this.Width+"");
//MessageBox.Show(""+this.Height+"");
//a = this.Width;
//b = this.Height;
dezhengwei 2009-12-15
  • 打赏
  • 举报
回复
哈哈,我刚好也做了这么样的一个程序
kssys 2009-12-15
  • 打赏
  • 举报
回复
可以通过以下方式获取宽度和高度:
this.Left = 0;
this.Top = 0;
this.Width=Screen.PrimaryScreen.WorkingArea.Width;
this.Height = Screen.PrimaryScreen.WorkingArea.Height;
liherun 2009-12-15
  • 打赏
  • 举报
回复
 private void Form5_Load(object sender, EventArgs e)
{
int width= Screen.PrimaryScreen.Bounds.Width;//得到横分辨率
int height= Screen.PrimaryScreen.Bounds.Height;//得到纵分辨率
this.Height = Convert.ToInt32(height * 0.6);//设置窗体的高
}
极限时刻 2009-12-15
  • 打赏
  • 举报
回复
如何赋值呢?如何取得显示器分辨率?里面的控件如何来变化呢?
mjay0210 2009-12-15
  • 打赏
  • 举报
回复
楼主给分
mjay0210 2009-12-15
  • 打赏
  • 举报
回复
首先获取系统分辨率x,y
这个用Windows api

using System.Runtime.InteropServices;
/// <summary>
/// 获取操作系统分辨率
/// </summary>
/// <param name="nIndex"></param>
/// <returns></returns>
[DllImport("user32.dll")]
public static extern int GetSystemMetrics(int nIndex);


nindex 0是宽 1 是长
得到 x , y两个 int

然后改变 this.size=new Size(x,y);

至于你说的 按比率 你就按比率 改变x y 就行了
zl194 2009-12-15
  • 打赏
  • 举报
回复
那就取一下显示器分辨率进行判断。
liherun 2009-12-15
  • 打赏
  • 举报
回复
加载的时候得到屏幕的分辨率
设置窗口的大小
Taiyangchen 2009-12-15
  • 打赏
  • 举报
回复
给你个思路,其实楼上几位说的已经差不多了

我记得vs里面是可以获得当前系统屏幕的大小的,宽,高分辨率,然后再将所获得到的直接赋值给你设备上的值不就行了吗,这就相当于获得到的分辨率是一对变量值,然后再赋值。

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧