我想将表单移动到工作区最右边的监视器和最右边的边界。
使用VB6,我使用了vbAccelerator.com的一个代码,如下所示:
Dim mThis As cMonitor = _cM.MonitorForWindow(Form.Hwnd)
Dim lMaxRight As Integer
If Not (mThis Is Nothing) Then
With Form
lMaxRight = mThis.WorkRight
.Left = ((mThis.WorkRight) * -(.Width))
End With
Else
Form.Left = Screen.PrimaryScreen.Bounds.Width - Form.Width
End If
然而,我认为这并不适用于框架。
因此,我想问一下,是否有一种简单的方法可以对Microsoft.Net Framework进行同样的处理。
谢谢!
此代码将表单定位到vb.Net 的右上角
Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, 0)
查看Screen.WorkingArea
属性。请注意,只有当屏幕以矩形布局(无死区)和水平布局时,这才有效。
一个更好的方法是枚举屏幕(Screen.AllScreens
),选择一个看起来最好的屏幕(最右边的边界?或者如果有多个,则是顶部?),然后移动窗体以适应该屏幕的边界。