代码改变世界

C#怎么设置子窗体在主窗体中居中显示

  苏飞  阅读(43790)  评论(2编辑  收藏  举报

阅读全文地址:http://www.sufeinet.com/thread-1473-1-1.html

C#怎么设置子窗体在主窗体中居中显示
问题的开始是由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();

 

在子窗体中你什么也不需要做
下面是我提供的一个例子,是源代码,大家如果还是感觉不太清楚的话可以下载例子看一下

 

 

(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示