求一页面排版算法

stevenhzj 2008-11-14 04:28:15
winform 窗体,
窗口大小:W:1024 H:768
自定义控件大小:W:140 H:90
在窗口中需要布置10个自定义控件
求一个算法,让这10个控件根据窗口的大小计算位置,进行排版。
...全文
83 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
journeydj 2008-11-14
  • 打赏
  • 举报
回复
使用flowLayoutPanel;控件放在flowLayoutPanel中。
int fW = 0;
int fH = 0;
int pW = 0;
int pH = 0;

private void Form1_Load( object sender , EventArgs e )
{
//setKalendar(DateTime.Now);
fW = this.Width;
fH = this.Height;
pW = this.flowLayoutPanel1.Width;
pH = this.flowLayoutPanel1.Height;
}
private void Form1_SizeChanged( object sender , EventArgs e )
{
this.flowLayoutPanel1.Width = pW + ( this.Width - fW );
this.flowLayoutPanel1.Height = pH + ( this.Height - fH );
}
stevenhzj 2008-11-14
  • 打赏
  • 举报
回复
我用的是自定义控件,窗口中都是同一控件10,也就是大小一样。
现在想的是,该怎样根据窗口大小来排列这10个控件
wangping_li 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 stevenhzj 的回复:]
怎么去计算,窗口大小是可以变化的,我想每行的控件数根据窗口大小来计算
[/Quote]
你这样的话只能先取到当前窗体的宽度,然后根据宽度来分配控件(这样还没有考虑高度,假如超过高度了怎么办?)
但是也样也和控件大小有关系了,比如同是TextBOx,你显示姓名的控件和显示地址的控件不可能同宽的
如果是和显示姓名一排的可以放四个,但有显示地址的呢?显然四个是不行的
这样的话感觉不是很完美,我的界面也是根据字断自动生成的,也是根据界面来规定长度,但是宽度都是一样的,还得手工去调
只能说是剩下了拖控件的时间
stevenhzj 2008-11-14
  • 打赏
  • 举报
回复
怎么去计算,窗口大小是可以变化的,我想每行的控件数根据窗口大小来计算
hornbills 2008-11-14
  • 打赏
  • 举报
回复
lz应该把基本规则确定一下,否则没办法搞!
cpio 2008-11-14
  • 打赏
  • 举报
回复
3×4

最后一行或者第一行中间放一个
格拉 2008-11-14
  • 打赏
  • 举报
回复
等高手

110,538

社区成员

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

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

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