winform panel面板在窗体里居中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform panel面板在窗体里居中相关的知识,希望对你有一定的参考价值。

RT,窗体默认为全屏,如何让panel面板居中显示

Panel panel1;
吧下面定位放到初始化InitializeComponent();的后面
panel1.Location=new Point((this.Width-panel1.Width)/2,(this.height-panel1.Height)/2)

如果你窗体带边框的话 this.Width 和this.Height实际上是连边框一起算进去的 ,再减掉就绝对居中了
觉得麻烦可以定义一个最底层的Panel 其他控件都放这个panel里,
比如
Panel mpanel=new Panel();
mpanel.Dock = DockStyle.Fill;
this.Controls.Add(mpanel);
mpanel.Controls.Add(panel1);
panel1.Location=new Point((mpanel.Width-panel1.Width)/2,(mpanel.height-panel1.Height)/2);
这样就绝对居中了
参考技术A 定义一下Anchor,左右对齐一下。追问

居中不了啊,分辨率在其它机器上有可能不一样,要做到不管分辨率是什么都要居中

追答

两种方案

    后台代码计算尺寸

    用WPF

追问

后台代码怎么算?

追答

this.Size就是窗体的尺寸,然后你根据想要的比例计算出panel的Left和Width即可。

本回答被提问者采纳

winform 窗体加载的问题,C#里不同Panel中窗体的调用

有3个窗体form1在panel1中,form2在panel2中,form3 在panel3中 (在panel2右边),其中form1的按钮控制 form2和form3的加载 ,form2中的按钮控制form3的加载
panel1,panel2和panel3同属主窗体了,现在是panel2中的按钮如何控制panel3中窗体的变化了
panel1中加载form2 和form3的代码
form2 frmSchedule = new form2();
frmSchedule.MdiParent = this;
panel2.Controls.Clear();
panel2.Controls.Add(frmSchedule);
frmSchedule.Dock = DockStyle.Fill;
frmSchedule.Show();
现在是 panel2 不知道怎么加载 panel3中的窗体,怎么找到父级的 panel1,折腾了1晚上实在搞不定啊,望哪位能帮帮小弟啊

参考技术A 通过在上级主窗口上暴露属性、Panel中通过主窗口的属性来访问。或在Panel中设置属性,由主窗口设置。 参考技术B 小弟 你问问题时能不能简单化一下 329399491本回答被提问者采纳

以上是关于winform panel面板在窗体里居中的主要内容,如果未能解决你的问题,请参考以下文章

winform 窗体加载的问题,C#里不同Panel中窗体的调用

winform中如何设置提示框在winform窗体中居中显示?

WinForm中如何实现嵌入form窗体(panel与子窗体)

C#把winform中的Panel控件部分全屏

c# winform panel 边框样式设置

winform中panel刷新闪烁的问题