| 
 
积分40186好友记录主题帖子听众收听 
 | 
 
| C#怎么设置子窗体在主窗体中居中显示 问题的开始是由C#传传看主群里的印醒提出来的,下面我来说一下解决方案吧
 其实表面上看是很简单的
 开始吧,现在有两个窗体Form1主窗体,Form2子窗体
 而且我相信大部分人都会这样写
 在子窗体的Load事件中
 这样写
 [code=csharp] this.StartPosition = FormStartPosition.CenterParent;[/code]
 其实这样写是不对的,正确的写法应该是
 [code=csharp] this.StartPosition = FormStartPosition.CenterScreen;[/code]
 为什么是CenterScreen而不是CenterParent呢?
 那是因为我们调用的方法的问题,如果你在调用子窗体时是这样写的话
 [code=csharp] Form2 f2 = new Form2();
 f2.MdiParent  = this;
 f2.Show();[/code]
 那就得使用CenterScreen而不是CenterParent了,因为在Show的时候窗体是Owner页不是Parent
 只要使用ShowDialog()方法时使用CenterParent才有效
 大家会说这样就行了吗?其实也不行,我们的代码不应该写在Load事件中,而是在Show方法之前写。
 正确的写法应该是这样的
 [code=csharp] Form2 f2 = new Form2();
 f2.MdiParent  = this;
 f2.StartPosition = FormStartPosition.CenterScreen;
 f2.Show();[/code]
 而在子窗体中你什么也不需要做
 下面是我提供的一个例子,是源代码,大家如果还是感觉不太清楚的话可以下载例子看一下
 
  WindowsFormsApplication1.rar
(40.63 KB, 下载次数: 319) | 
 |