C#设置子窗体在主窗体中居中显示解决方案

C#设置子窗体在主窗体中居中显示解决方案,第1张

概述问题的开始是由C#传传看主群里的印醒提出来的,下面我来说一下解决方案吧其实表面上看是很简单的开始吧,现在有两个窗体Form1主窗体,Form2子窗体而且我相信大部分人都会这样写在子窗体的Load事件中这样写复制代码代 问题的开始是由C#传传看主群里的印醒提出来的,下面我来说一下解决方案吧
其实表面上看是很简单的
开始吧,现在有两个窗体Form1主窗体,Form2子窗体
而且我相信大部分人都会这样写

在子窗体的Load事件中
这样写
复制代码 代码如下:
this.Startposition = FormStartposition.CenterParent;

其实这样写是不对的,正确的写法应该是
复制代码 代码如下:
this.Startposition = FormStartposition.CenterScreen;

为什么是CenterScreen而不是CenterParent呢?
那是因为我们调用的方法的问题,如果你在调用子窗体时是这样写的话
复制代码 代码如下:
Form2 f2 = new Form2();
f2.MdiParent= this;
f2.Show();

那就得使用CenterScreen而不是CenterParent了,因为在Show的时候窗体是Owner页不是Parent
只要使用ShowDialog()方法时使用CenterParent才有效
大家会说这样就行了吗?其实也不行,我们的代码不应该写在Load事件中,而是在Show方法之前写。
正确的写法应该是这样的
复制代码 代码如下:
Form2 f2 = new Form2();
f2.MdiParent= this;
f2.Startposition = FormStartposition.CenterScreen;
f2.Show();

在子窗体中你什么也不需要做


再提供一个布局的其实属性
Startposition属性有如下选项,分别含义如下:
CenterParent 窗体在其父窗体中居中
CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。
Manual 窗体的位置由 Location 属性确定。
windowsDefaultBounds 窗体定位在 windows 默认位置,其边界也由 windows 默认决定。
windowsDefaultLocation窗体定位在 windows 默认位置,其尺寸在窗体大小中指定。
CenterScreen的意思并不是屏幕居中(是相对的),它是在"当前显示窗口"中居中。 总结

以上是内存溢出为你收集整理的C#设置子窗体在主窗体中居中显示解决方案全部内容,希望文章能够帮你解决C#设置子窗体在主窗体中居中显示解决方案所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1255022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存