WinForm中控件的大小和位置,怎么随窗体的大小变化而改变?

liberte 2006-07-28 01:44:20
怎么处理,
有具体代码?
...全文
654 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangge 2006-07-28
  • 打赏
  • 举报
回复
如果二楼那样处理,控件一多,就不好控制了
可以仿照Java的flow layout,我们事先把布局弄好,比如用panel等控件安排好
然后设定好panel的dock属性,这样在把控件填充到panel中,设置dock属性,这样不管最终用户怎样调整窗体,都不会影响,我就是这样用于我的项目中的
oneiter 2006-07-28
  • 打赏
  • 举报
回复
以前我也用过2楼那样的方法,觉得效果还可以。用Control.Dock有时候达不到想要的效果。
marvelstack 2006-07-28
  • 打赏
  • 举报
回复
可以通过设置这些控件从基类继承的属性,
Control.Dock//填充
Control.anchor//锚定
liberte 2006-07-28
  • 打赏
  • 举报
回复
楼上有什么好方法
程英杭 2006-07-28
  • 打赏
  • 举报
回复
这么巧有人也在这个时候发布了个消息,那如果我的方法不能满足的,就只能象2楼那样处理了
程英杭 2006-07-28
  • 打赏
  • 举报
回复
最简单的处理方法是用Dock属性,比方ListView DataGrid Panel 等等都有这个属性
但是用这个处理的时候注意下他们的先后顺序,
比方以这样的例子为例,上面放几个文本框,然用户选择查询条件,下面放个ListView 显示用户的信息,那么你可以这么处理,
新建一个窗口,在里面添加一个Panel,把其Dock属性设置为Top,然后在这个控件里面加入文本框等信息,然后拖入一个ListView,放到窗体上(是窗体上,上面的是Panel中),然后设置其Dock属性为Fill,Ok,你的窗体变动了,他们的大小也变了,
如果这种方法不能满足,那只能自己写Resize事件,就像楼上的
cancerser 2006-07-28
  • 打赏
  • 举报
回复
dock 属性
dyc13 2006-07-28
  • 打赏
  • 举报
回复
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();
}
我得笨但我努力噢.

111,119

社区成员

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

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

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