c#窗体大小问题?我的电脑是1366*768的分辨率,我在C#里面窗体的最大不能超过这个分辨率,怎么调整到1920 5

c#窗体大小问题?我的电脑是1366*768的分辨率,我在C#里面窗体的最大不能超过这个分辨率,怎么调整到1920*1080窗体呢?或者是我在1366*768的窗体设计的... c#窗体大小问题?我的电脑是1366*768的分辨率,我在C#里面窗体的最大不能超过这个分辨率,怎么调整到1920*1080窗体呢?
或者是我在1366*768的窗体设计的界面像LABEL,TEXT这些控件能根据使用电脑的分辨率自动缩放?求代码,谢谢!
展开
 我来答
sin91丶
2019-03-15 · TA获得超过736个赞
知道小有建树答主
回答量:547
采纳率:56%
帮助的人:119万
展开全部

可以这样做

  1. 窗体加载后,使用集合,记录每个控件位置和大小的比例,X坐标和宽度与窗体宽度比, Y坐标和高度与窗体高度比,需要注意的是,窗体中可能有子容器,子容器中的控件,需要先将坐标转为屏幕坐标,再计算为在窗体中的坐标

  2. 在窗体SizeChanged事件中,遍历集合中的控件,位置和大小分别乘上对应的比例,需要注意的是,先将窗体坐标转为屏幕坐标,再转为父容器内的坐标

主要代码如下

//定义集合
private Dictionary<Control, List<double>> dic = Dictionary<Control, List<double>>();
//定义函数,递归记录每个控件的比例
private void GetAllControls(Control parent)
{
 foreach(Control con in parent.Controls)
    {
    Point p = this.PointToClient(parent.PointToScreen(con.Location));
    dic.Add(con, new List<double>(){
    p.X*1d/this.Width,
    p.Y*1d/this.Height,
    con.Width*1d/this.Width,
    con.Height*1d/this.Height
    
    });
    if(con.HasChildren){
    GetAllControls(con);
    }
    }
}

//窗体Load事件中记录
this.Load += (s, e) => {
GetAllControls(this);
//窗体大小改变后,改变各个控件的位置和大小
this.SizeChanged += (s1, e1)=>{
foreach(Control con in dic.keys){
con.Location = con.Parent.PointToClient(this.PointToScreen(new Point(
(int)(dic[con][0]*this.Width),
(int)(dic[con][1]*this.Height),
)));
con.Size = new Size(
(int)(dic[con][2]*this.Width),
(int)(dic[con][3]*this.Height)
);
}
};
};
一颗程序猿o_0
2019-03-15 · TA获得超过6298个赞
知道大有可为答主
回答量:5403
采纳率:77%
帮助的人:1357万
展开全部
你选中那个窗体(点击标题栏就行), 在属性列表里把width/height改成相应尺寸就行了
运行之前记得先该回来, 要不然显示不全
更多追问追答
追问
我选择窗体,但是尺寸最高就只能1366*768,会自动变回去。
追答
更改一下MaximumWeight 和MaximunHeight
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-03-15
展开全部
启动之后去修改窗口 height 和 width 的
不过个人建议你外接一个显示器这样方便调试的
Label TEXT 这样的空间会自动变化,但是效果不一定让你满意
建议你用高分辨率屏幕多测试几次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-11-24
展开全部
我的也是,楼主后来解决了没有?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式