1

我想将我的表单停靠在右侧(最大分辨率高度最大分辨率宽度 / 2)。我正在使用 VB.NET,到目前为止我的代码是:

  Dim scr As Screen = Screen.FromControl(Me)
  Me.Top = scr.WorkingArea.Top + scr.WorkingArea.Height - Me.Height
  Me.Left = scr.WorkingArea.Left + scr.WorkingArea.Width - Me.Width

有什么想法可以使我的表单大小为当前分辨率的一半并将其放置在桌面的右侧(例如使用 windows 键 + 右箭头时)?

4

1 回答 1

3

您还需要设置宽度和高度,而不仅仅是位置。请务必在窗口重新缩放执行此操作,表单的 Load 事件最好:

Public Class Form1
    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        Dim work = Screen.FromControl(Me).WorkingArea
        Me.Top = work.Top
        Me.Left = work.Right - work.Width / 2
        Me.Width = work.Width / 2
        Me.Height = work.Height
        MyBase.OnLoad(e)
    End Sub
End Class

如果您在窗口已经显示之后执行此操作,则倾向于分配Bounds属性,它将避免重绘。

于 2013-07-20T16:20:14.500 回答