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

ASP教程 2025-08-31

推荐:总是弹出visual studio 实时调试器 三种解决办法
最近服务器老是弹出visual studio 实时调试器很是郁闷呀。关还关不掉。怎么解决呢 ,现像如下图所示: 下面我们一起来分析一下这种情况的原因: 弹出应用程序: Visual Studio 实时调试器: 发生了未处理的异常(下标越界: '[number: 0]'),发生位置是 w3wp.exe [2472]。

 问题的开始是由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的意思并不是屏幕居中(是相对的),它是在当前显示窗口中居中。

分享:asp有效防止网站留言板出现垃圾留言/评论实现思路
一.在表单填写页面: input name=intime1 type=hidden value=%=Now()% 在提交处理页面,设置提交时间 代码如下: If DateDiff(s,request.form(intime1), Now()) 5 then response.write SCRIPT language=JavaScriptalert('您的留言速度太快,禁止留言!'); response.write