WinForm中控件的大小和位置,怎么随窗体的大小变化而改变? 怎么处理,有具体代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 double bwidth, bheight, ewidth, eheight; private void Form1_ResizeBegin(object sender, EventArgs e) { bwidth = this.Width; bheight = this.Height; } private void Form1_ResizeEnd(object sender, EventArgs e) { ewidth = this.Width; eheight = this.Height; button1.Left = (int)(button1.Left * (ewidth / bwidth)); button1.Width = (int)(button1.Width * (ewidth / bwidth)); button1.Top = (int)(button1.Top * (eheight / bheight)); button1.Height = (int)(button1.Height * (eheight / bheight)); button1.Show(); }我得笨但我努力噢. 最简单的处理方法是用Dock属性,比方ListView DataGrid Panel 等等都有这个属性但是用这个处理的时候注意下他们的先后顺序,比方以这样的例子为例,上面放几个文本框,然用户选择查询条件,下面放个ListView 显示用户的信息,那么你可以这么处理,新建一个窗口,在里面添加一个Panel,把其Dock属性设置为Top,然后在这个控件里面加入文本框等信息,然后拖入一个ListView,放到窗体上(是窗体上,上面的是Panel中),然后设置其Dock属性为Fill,Ok,你的窗体变动了,他们的大小也变了,如果这种方法不能满足,那只能自己写Resize事件,就像楼上的 可以通过设置这些控件从基类继承的属性,Control.Dock//填充Control.anchor//锚定 以前我也用过2楼那样的方法,觉得效果还可以。用Control.Dock有时候达不到想要的效果。 如果二楼那样处理,控件一多,就不好控制了可以仿照Java的flow layout,我们事先把布局弄好,比如用panel等控件安排好然后设定好panel的dock属性,这样在把控件填充到panel中,设置dock属性,这样不管最终用户怎样调整窗体,都不会影响,我就是这样用于我的项目中的 C#实现自定义通讯协议 如何用C#降低图片的分辨率 并存储 C# 怎样才能让鼠标按住控件并左右移动控件 datagridview 计算列动态变化 如何隐藏基类中的成员? 急求:怎么获取文件夹的路径并把路径保存到数据库里面 初学的简单问题 winform 难点攻关(组织架构图形化) C#Codesmith 生成代码 11日3:00多到8:00多为什么csdn上不去?? C#调用存储过程时候,在运行这句:Com.ExecuteNonQuery()时候报错,错误是下面,请问是啥错误? 如何在C#中编写级次编码的树状结构
private void Form1_ResizeBegin(object sender, EventArgs e)
{
bwidth = this.Width;
bheight = this.Height;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
ewidth = this.Width;
eheight = this.Height;
button1.Left = (int)(button1.Left * (ewidth / bwidth));
button1.Width = (int)(button1.Width * (ewidth / bwidth));
button1.Top = (int)(button1.Top * (eheight / bheight));
button1.Height = (int)(button1.Height * (eheight / bheight));
button1.Show();
}
我得笨但我努力噢.
但是用这个处理的时候注意下他们的先后顺序,
比方以这样的例子为例,上面放几个文本框,然用户选择查询条件,下面放个ListView 显示用户的信息,那么你可以这么处理,
新建一个窗口,在里面添加一个Panel,把其Dock属性设置为Top,然后在这个控件里面加入文本框等信息,然后拖入一个ListView,放到窗体上(是窗体上,上面的是Panel中),然后设置其Dock属性为Fill,Ok,你的窗体变动了,他们的大小也变了,
如果这种方法不能满足,那只能自己写Resize事件,就像楼上的
Control.Dock//填充
Control.anchor//锚定
可以仿照Java的flow layout,我们事先把布局弄好,比如用panel等控件安排好
然后设定好panel的dock属性,这样在把控件填充到panel中,设置dock属性,这样不管最终用户怎样调整窗体,都不会影响,我就是这样用于我的项目中的