我有一个名为Form1的表单.它设置为启动 - 位置=中心但在执行时它会在其他地方打开(在随机位置evrytime).
我使用IDE Visual Studio - 2010在Windows XP SP3下工作.请提供此问题的解决方法.
我上传了一个显示上述问题的示例项目.
下载链接:
你必须设置:
Form1.StartPosition = FormStartPosition.Manual
Run Code Online (Sandbox Code Playgroud)
这是一个工作样本:
Dim X As Integer = (Screen.PrimaryScreen.Bounds.Width - Me.Width) / 2
Dim Y As Integer = (Screen.PrimaryScreen.Bounds.Height - Me.Height) / 2
Me.StartPosition = FormStartPosition.Manual
Me.Location = New System.Drawing.Point(X, Y)
Run Code Online (Sandbox Code Playgroud)
以下是基于Hans Passant评论的改进代码(更好):
Dim mainScreen As Screen = Screen.FromPoint(Me.Location)
Dim X As Integer = (mainScreen.WorkingArea.Width - Me.Width) / 2 + mainScreen.WorkingArea.Left
Dim Y As Integer = (mainScreen.WorkingArea.Height - Me.Height) / 2 + mainScreen.WorkingArea.Top
Me.StartPosition = FormStartPosition.Manual
Me.Location = New System.Drawing.Point(X, Y)
Run Code Online (Sandbox Code Playgroud)