社区
C#
帖子详情
winform中窗体最大化时 如何使窗体中内容也相应的全屏
xgwshenzhen
2008-07-05 11:54:10
请教大家,winform中窗体最大化时 如何使窗体中内容也相应的全屏?
...全文
1636
23
打赏
收藏
winform中窗体最大化时 如何使窗体中内容也相应的全屏
请教大家,winform中窗体最大化时 如何使窗体中内容也相应的全屏?
复制链接
扫一扫
分享
转发到动态
举报
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)
c#
winform
窗口
全屏
c#
winform
窗口
全屏
,遮盖住任务栏。
WinForm
实现
窗体
最大化
并遮盖任务栏的方法
主要介绍了
WinForm
实现
窗体
最大化
并遮盖任务栏的方法,涉及C#实现
WinForm
窗体
全屏
显示的实现及调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
C#
WinForm
窗体
中
控件的大小自适应
下载后解压缩即可运行使用,代码
中
有详细的备注。 使用方法见博客:https://blog.csdn.net/chbxgbin/article/details/109690260 1.把自适应的类整体复制到你的工程命名空间里,这样做,每个
窗体
均可使用。 2.声明自适应类实例。 3.为
窗体
添加SizeChanged事件,并在其方法Form1_SizeChanged
中
,首次记录
窗体
和其控件初始位置和大小,之后调用类的自适应方法,完成自适应。 4.Panel,DataGridView等控件同样适用。
winform
无边框
窗体
C#
winform
无边框
窗体
winform
使用webBrowser實現
全屏
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { this.webBrowser1.Navigate(Application.StartupPath + "/default.htm"); }
Winform
全屏
: this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章