Winforms StartPosition.CentreScreen转换为什么点坐标

Winforms StartPosition.CentreScreen转换为什么点坐标,winforms,Winforms,在Windows窗体上,您可以将StartPositionenumeration属性设置为CenterScreen,使窗体开始位于主监视器的中心 我从中了解到,当选择一个StartPosition枚举值时,表单的Location属性在幕后被设置为Point类的一个实例,该类显然在构造函数中使用两个整数作为值,以设置表单的位置 如果您选择Manual枚举StartPosition,您可以自己将Location属性设置为点类的实例,将表单放置在任何您喜欢的位置 我正试图让我的Windows窗体始终从

在Windows窗体上,您可以将
StartPosition
enumeration属性设置为
CenterScreen
,使窗体开始位于主监视器的中心

我从中了解到,当选择一个StartPosition枚举值时,表单的
Location
属性在幕后被设置为
Point
类的一个实例,该类显然在构造函数中使用两个整数作为值,以设置表单的位置

如果您选择
Manual
枚举
StartPosition
,您可以自己将
Location
属性设置为
类的实例,将表单放置在任何您喜欢的位置

我正试图让我的Windows窗体始终从屏幕的顶部中间开始,并以此作为我的灵感。所以我的问题是,每当您选择
CenterScreen
作为
StartPosition
时,编译器使用什么坐标将表单定位在屏幕的中心位置


谢谢

显然,您可以使用以下选项之一获得屏幕大小:

SystemInformation.PrimaryMonitorSize
SystemInformation.WorkingArea
SystemInformation.VirtualScreen
Screen.PrimaryScreen.Bounds
Screen.PrimaryScreen.WorkingArea 
然后使用公式将形状位置设置为中心

ScreenWidth / 2 - FormWidth / 2

您可以将表单顶部位置设置为0,假设您希望它位于顶部中心

这是一个有点悬而未决的问题。使用这两种技术创建停靠的应用程序是非常可能的。有许多控件和库可用于这两种功能,通过internet快速搜索停靠控件可以得到许多结果。由于表单是使用左上角(0,0)定位的,因此我将问题更加具体您需要使用公式-
ScreenWidth/2-FormWidth/2
来获得中心点-不确定从哪里获得屏幕宽度,但这是一般规则。表单的顶部可能正好位于位置0。