Vb.net 如何在保持窗体位于屏幕中心的同时调整窗体大小?

Vb.net 如何在保持窗体位于屏幕中心的同时调整窗体大小?,vb.net,window-resize,Vb.net,Window Resize,我有一个vb.net表单。 我使用下面的教程将阴影和移动/调整大小功能添加到表单中 它工作正常,但我的问题是,每当我的表单调整大小时, 它应该保持在屏幕的中心,或者,如果我从底部调整它的大小,它会从顶部和底部调整大小 我用过这个: Private Sub Form1_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged Top = (Screen.PrimaryScreen.WorkingArea.Hei

我有一个vb.net表单。 我使用下面的教程将阴影和移动/调整大小功能添加到表单中

它工作正常,但我的问题是,每当我的表单调整大小时, 它应该保持在屏幕的中心,或者,如果我从底部调整它的大小,它会从顶部和底部调整大小

我用过这个:

Private Sub Form1_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
    Top = (Screen.PrimaryScreen.WorkingArea.Height - Height) / 2
    Left = (Screen.PrimaryScreen.WorkingArea.Width - Width) / 2
End Sub
但是每当我调整它的大小时,在调整大小之后,表单就会移动到鼠标指针的位置。 鼠标指针位于窗体窗口之外,因为它在两个相反方向上都调整了一半大小

它会导致闪烁并更改窗体的位置


有什么办法可以让我顺利实施吗?提前感谢。

声明2个变量以保持桌面屏幕分辨率

Dim dx,dy为整数

在窗体加载时,获取屏幕分辨率,并将其转换为dx和dy格式

最后,在调整大小事件中,执行以下操作

私有子表单1\u ResizeEndsender作为对象,e作为EventArgs处理MyBase.ResizeEnd

端接头

您可以使用Form.CenterToScreen方法:

阅读更多:

是的,我知道这篇文章说它不打算从您的代码中使用,但我看到其他专业程序员毫无问题地使用它

  dx = My.Computer.Screen.Bounds.Width
  dy = My.Computer.Screen.Bounds.Height
      Dim x, y As Integer

      x = Me.Width / 2

      y = Me.Height / 2

      Me.Location = New Point(dx / 2 - x, dy / 2 - y)
Private Sub Form1_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
    Me.CenterToScreen()
End Sub