gpt4 book ai didi

vb.net - Winforms MDI "Desktop"区域边界

转载 作者:行者123 更新时间:2023-12-03 21:38:50 26 4
gpt4 key购买 nike

默认的 MDI 父控件有一个很大的“桌面”区域,可以显示多个子窗体。用户可以将表单拖到这个桌面区域的边缘,这样子表单的大部分就不会出现在屏幕上。 (然后滚动条出现在 MDI 父级中)我不喜欢这个功能。有没有办法锁定桌面区域的边缘,使子窗体保持完全可见?

最佳答案

我用来实现上面选择的答案的代码:

Public alreadyMoved As Boolean = False
Public Const HEIGHT_OF_MENU_STATUS_BARS As Integer = 50
Public Const WIDTH_OF_MENU_STATUS_BARS As Integer = 141
Private Sub Form_Move(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Move
If Not alreadyMoved Then
alreadyMoved = True

'If I'm over the right boundry, drop back to right against that edge
If Me.Location.X + Me.Width > _
MdiParent.ClientRectangle.Width - WIDTH_OF_MENU_STATUS_BARS Then
MyBase.Location = New System.Drawing.Point( _
(MdiParent.ClientRectangle.Width - Me.Width - _
WIDTH_OF_MENU_STATUS_BARS), MyBase.Location.Y)
End If

'If I'm over the bottom boundry, drop back to right against that edge
If Me.Location.Y + Me.Height > _
MdiParent.ClientRectangle.Height - HEIGHT_OF_MENU_STATUS_BARS Then
MyBase.Location = New System.Drawing.Point( _
MyBase.Location.X, (MdiParent.ClientRectangle.Height - _
Me.Height - HEIGHT_OF_MENU_STATUS_BARS))
End If

'If I'm over the top boundry, drop back to the edge
If Me.Location.Y < 0 Then
MyBase.Location = New System.Drawing.Point(MyBase.Location.X, 0)
End If

'If I'm over the left boundry, drop back to the edge
If Me.Location.X < 0 Then
MyBase.Location = New System.Drawing.Point(0, MyBase.Location.Y)
End If
End If
alreadyMoved = False
End Sub

关于vb.net - Winforms MDI "Desktop"区域边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/603412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com