C#窗体怎样实现自适应大小(一)

以前用串口助手时,没有发现什么不对劲的地方,但自己写的上位机控件,点击窗口最大化时,界面却没有按相应的比例放大,让人看得很不舒服,其实,知道窗口有自适应这一说法,可在C#里如何实现呢?

在C#编程里,使用布局控件实现窗体的自适应大小,相信很多朋友都用过吧,用过的不要吐糟,没有用过的可以参考参考,谢谢各位狼友。

1 先介绍两个控件 tableLayoutPanelflowLayoutPanel

这两个控件,在 工具箱---容器 里面

tableLayoutPanel 是列表布局

flowLayoutPanel  是流布局

2 tableLayoutPannel 列表布局

2.1 新建一个窗口Form

 2.2 拖一个tableLayoutPanel到窗体上

 2.3 将其Dock属性设置为Fill,也就是中间那个区域

这样tableLayoutPanel就会部填充窗口

 2.4 选择控件右上角的小三角,可以编辑行和列,在弹出的窗体中设置百分比或者设置固定值,比如说在窗口放大时,有些控件不希望改变大小,就可以在绝对(B)写入固定相素值

 

 可以添加行或列,并设置百分比值或绝对值,也可以选择自动调整大小

2.5 到这里,就可以方便的向列表存放其它控件了

如拖一个 groupBox到第单元格1,然后将其属性 Dock 设置为Fill,这样groupBox1就自动填充满单元格1,如果不想填充满,也可以设置它的anchor属性,让它居中对齐,有空再试试这个功能。

 2.5 如果想让控制跨度放置,如下面的textBox

选中控件,ColumnSpan 设置为2,然后将Dock 设置为Fill

 

 如果想要放多个控件,比如单元格1按2个button,就先放一个groupBox,再拖两个button进去,就可以了。

3 如果要自适应屏幕大小,就可以在窗体打开事件中加上下面这段代码

 4 总结

  • 像我示范的窗体那样有很多groupBox控件的话,是需要用相同的办法在groupBox控件中也加入布局控件进行上面相同的操作,否则就会出现groupBox缩小了,但是groupBox里面的子控件却被覆盖掉而显示不出来的情况。
  • 如果想要实现局部放大或缩小,也就是有些地方不希望它改变大小,只希望固定控件去改变大小,这种情况下只需要前面几行固定像素,让希望变化的控件为百分比大小即可.

如下在单元4中,再拖入一个tableLayoutPannel,设置好行列,就可以各放gruopBox,看起很舒服吧。

 

如果要实现直接自适应屏幕大小可以这样做(在上述窗体设计操作完成后):

在主窗体构造函数末尾或者主窗体Load事件中写上

//获取当前屏幕显示区域大小,让窗体长宽等于这个值,这里不包含任务栏哦
this.Width = Screen.PrimaryScreen.WorkingArea.Width;
//这样窗体打开的时候直接就是屏幕的大小了
this.Height = Screen.PrimaryScreen.WorkingArea.Height;
  • 18
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值