标题:嵌入Panel的窗体如何居中?
只看楼主
foxqd
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-4-24
结帖率:0
 问题点数:0 回复次数:3 
嵌入Panel的窗体如何居中?
我在程序的主界面的左端用了下拉式菜单选项,主界面的右端是一个Panel,当在左端点击了一个选项后,就把相关子窗体嵌入在这个Panel中显示出来,这些我已实现了。代码大致如下所示:

......
Type typeForm = Type.GetType("Weighing." + frmName);    //需使用当前窗体的命名空间(frmName:点击的子窗体名称)
Form subForm = Activator.CreateInstance(typeForm) as Form;
//subForm.FormBorderStyle = FormBorderStyle.None;
subForm.TopLevel = false;
subForm.Dock = DockStyle.Fill;
subForm.WindowState = FormWindowState.Maximized;
this.panel1.Controls.Add(subForm);
......

但子窗体总是显示在panel1的左侧,我希望显示在panel的中部(居中),应该如何实现?谢谢!
搜索更多相关主题的帖子: 如何 false 
2013-03-01 09:26
foxqd
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-4-24
得分:0 
一点人气都没有!
2013-03-15 13:16
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
subForm.Dock = DockStyle.Fill;
subForm.WindowState = FormWindowState.Maximized;
你都把子窗体最大化,且占满整个panel1,还居中啥啊
2013-03-15 14:14
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
唉,还是跟你说说吧
Type typeForm = Type.GetType("WindowsFormsApplication1.Form2");
Form subForm = Activator.CreateInstance(typeForm) as Form;
//subForm.FormBorderStyle = FormBorderStyle.None;
subForm.TopLevel = false;
//subForm.Dock = DockStyle.Fill;
//subForm.WindowState = FormWindowState.Maximized;
this.panel1.Controls.Add(subForm);
//你要让窗体居中,那么窗体就不用全屏,也不用排列占满Panel,所以把上面两句注释了
//下面这句就是控制subForm在panel1中的显示位置,这样显示出来窗体就会在panel1的中间
subForm.Location = new Point((panel1.Width - subForm.Width) / 2, (panel1.Height - subForm.Height) / 2);
//记得subForm要Show()出来
subForm.Show();
2013-03-15 17:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-399442-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.516843 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved