winform中窗体最大化时 如何使窗体中内容也相应的全屏

xgwshenzhen 2008-07-05 11:54:10
请教大家,winform中窗体最大化时 如何使窗体中内容也相应的全屏?
...全文
1636 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
hudenq 2011-09-23
  • 打赏
  • 举报
回复

最好你采用tableLayoutPanel来布局,DOCK设FILL 不变的的表格设为固定,变化的设为百分比,将表格内的控件DOCK设FILL就行了。
令狐苦瓜 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ojlovecd 的回复:]
设置控件的Anchor属性或Dock属性
[/Quote]
+1
mhy_0914 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hotmail_mk 的回复:]
以前在网上收集的代码,改变窗口大小,控件大小也按比例变化。
public partial class Form1 : Form
{
float x = 0;
float y = 0;
private void Form1_Resize(object sender, EventArgs e)
{
float newx = (this.Width) / x;
……
[/Quote]
这个代码为什么在有DataGridView的界面会报错呢?
未将对象引用设置到对象的实例。
quou2002 2011-09-23
  • 打赏
  • 举报
回复
同意 hudenq 的方法。
sjfbtnmcn 2011-09-23
  • 打赏
  • 举报
回复
这可不是几句话就能说清楚的问题,要么用 Anchor,用么自己设置比例去调整控件
stone__3 2008-07-07
  • 打赏
  • 举报
回复
……
darkarthur 2008-07-07
  • 打赏
  • 举报
回复
难道不是DOCK吗?
hotmail_mk 2008-07-07
  • 打赏
  • 举报
回复
private void Form1_Load(object sender, EventArgs e)
{
x = this.Width;
y = this.Height;
setTag(this);
}
net0003 2008-07-07
  • 打赏
  • 举报
回复
需要写代码
hotmail_mk 2008-07-07
  • 打赏
  • 举报
回复
以前在网上收集的代码,改变窗口大小,控件大小也按比例变化。
public partial class Form1 : Form
{
float x = 0;
float y = 0;
private void Form1_Resize(object sender, EventArgs e)
{
float newx = (this.Width) / x;
float newy = this.Height / y;
setConstrols(newx, newy, this);
}

private void setTag(Control cons)
{
foreach (Control con in cons.Controls)
{
con.Tag = con.Width + ":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;
if (con.Controls.Count > 0)
{
setTag(con);
}
}
}
private void setConstrols(float newx, float newy, Control cons)
{
foreach (Control con in cons.Controls)
{
string[] mytag = con.Tag.ToString().Split(new char[] { ':' });
float a = Convert.ToSingle(mytag[0]) * newx;
con.Width = (int)a;
a = Convert.ToSingle(mytag[1]) * newy;
con.Height = (int)(a);
a = Convert.ToSingle(mytag[2]) * newx;
con.Left = (int)(a);
a = Convert.ToSingle(mytag[3]) * newy;
con.Top = (int)(a);
Single currentSize = Convert.ToSingle(mytag[4]) * newy;
con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
if (con.Controls.Count > 0)
{
setConstrols(newx, newy, con);
}
}
}
}
满衣兄 2008-07-07
  • 打赏
  • 举报
回复
Paint
syl2000 2008-07-07
  • 打赏
  • 举报
回复
我以前在C中作过类似的处理,比较笨的方法:
记录控件的位置、大小相对于窗口的比例,改变窗口大小后作相应调整!
如果不改变窗口内各个控件的大小,我想可以这样:1、将所有的控件放到一个Panel中;2、主窗口大小改变以后,调整这个Panel的位置,比如将Panel至于窗口的中间部分,当主窗口全屏时,窗口内的控件也就调整到屏幕中央了!
kkun_3yue3 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ojlovecd 的回复:]
设置控件的Anchor属性或Dock属性
[/Quote]

同意一楼,
另外,如果有条件你可以使用WPF来开发
greenery 2008-07-07
  • 打赏
  • 举报
回复
1 如果你只有一个控件,你可以将控件的dock设置为full,全部填充。那么窗口大小调整时,控件的大小也会随着调整。
2 如果你有多个控件,那么你需要对每个控件设置适当的Anchor,跟随窗口变化而改变控件位置/大小。
huing 2008-07-07
  • 打赏
  • 举报
回复
设置控件的Anchor属性或Dock属性
同时计算控件在form上的大小比例
例如,form 400x400, 控件 100x100, 比例为1/4
放大 form 800x800,控件= 800*(1/4) x 800*(1/4)
mulpig 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 freeboy827 的回复:]
引用 1 楼 ojlovecd 的回复:
设置控件的Anchor属性或Dock属性


正解
[/Quote]
但是界面不一定会好看了
zhnzzy 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hotmail_mk 的回复:]
以前在网上收集的代码,改变窗口大小,控件大小也按比例变化。
public partial class Form1 : Form
{
float x = 0;
float y = 0;
private void Form1_Resize(object sender, EventArgs e)
{
float newx = (this.Width) / x;
float newy = this.Height / y;
setConstrols(newx, newy, this);
}

private void s…
[/Quote]

这个可以参考,动态用比例去 调整
lizhie 2008-07-07
  • 打赏
  • 举报
回复
在窗体的Resize事件中 写代码 确定你其他的控件的大小 和位置

不过这也需要技巧的 我是认为应该找一个参照物 确定一个好设置空间的位置和小
然后其他的空间以他为准
JTFLSH 2008-07-07
  • 打赏
  • 举报
回复
你可以加几个PANEL把你的控件包进去,然后控件DOCK属性改成FILL.再把相应PANEL的DOCK属性改成FILL
rockywu 2008-07-07
  • 打赏
  • 举报
回复
我只会设置Dock属性,其它学习中...
加载更多回复(3)

111,097

社区成员

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

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

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