来源:https://www.cnblogs.com/pingming/p/6765194.html
来源:https://blog.youkuaiyun.com/c914620529/article/details/47613915
首先必须把窗体的显示位置设置为手动。
dlg.StartPosition=FormStartPosition.Manual;
随后获取屏幕的分辨率,也就是显示器屏幕的大小。
int xWidth = SystemInformation.PrimaryMonitorSize.Width;//获取显示器屏幕宽度
int yHeight = SystemInformation.PrimaryMonitorSize.Height;//高度
然后定义窗口位置,以主窗体为例
mainForm.Location = new Point(xWidth/2, yHeight/2);//这里需要再减去窗体本身的宽度和高度的一半
mainForm.Show();
以上是链接原文
注意:敲黑板
如果让照上文这样写的话。窗口不会展现在屏幕中间
因为mainForm.Location = new Point(xWidth/2, yHeight/2); 的Location属性
是以窗口左上角作为起点。
故 我们要把窗体的 宽高各除以2。
然后
mainForm.Location = new Point(xWidth/2-窗口宽/2, yHeight/2-窗体高/2);
窗体宽高需要手动计算!
ps:
这是我自己的需求记录下
由于控件原因窗口 必须要最小化
但是登录后 主界面不会显示在屏幕上。
所以 我采用一种方法。
在窗体加载的时候 给一个文本框赋值(这个自己设置一个隐藏的文本框)
在Load事件中加上
StartPosition = FormStartPosition.CenterScreen;
textBox1.Select();//给文本控件光标
WindowState = FormWindowState.Normal;
解决