手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#设置子窗体在主窗体中居中显示解决方案
C#设置子窗体在主窗体中居中显示解决方案
摘要:问题的开始是由C#传传看主群里的印醒提出来的,下面我来说一下解决方案吧其实表面上看是很简单的开始吧,现在有两个窗体Form1主窗体,Form...

问题的开始是由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();

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

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

再提供一个布局的其实属性

StartPosition属性有如下选项,分别含义如下:

CenterParent 窗体在其父窗体中居中。

CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。

Manual 窗体的位置由 Location 属性确定。

WindowsDefaultBounds 窗体定位在 Windows 默认位置,其边界也由 Windows 默认决定。

WindowsDefaultLocation窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定。

CenterScreen的意思并不是屏幕居中(是相对的),它是在"当前显示窗口"中居中。

【C#设置子窗体在主窗体中居中显示解决方案】相关文章:

Response.Redirect 正在中止线程解决方案

C#最简单的关闭子窗体更新父窗体的实现方法

解析StreamReader与文件乱码问题的解决方法

C# 委托(跨窗体操作控件)实例流程讲解

C# 改变无边框窗体尺寸大小的方法

c#实现隐藏与显示任务栏的方法详解

c#.NET中日志信息写入Windows日志中解决方案

C#中动态显示当前系统时间的实例方法

用C#实现启动另一程序的方法实例

C# 如何判断两个文件内容是否相同的方法

精品推荐
分类导航