我在尝试弄清楚如何检测表单是否卡在桌面的一侧时遇到了问题。几个月前我最近的thread并没有解决我的问题,我已经离开了一段时间,但我现在回来了。
以下代码在Form1_ResizeEnd
上执行的操作会保存表单的大小。当表单被捕捉到桌面的一侧时,我试图阻止大小保存。
If WindowState = FormWindowState.Normal Then My.Settings.Size = Size
我已经尝试过以下代码(由Index编写),但它并没有为我做好。
If me.width = Screen.PrimaryScreen.Bounds.Width / 2 And me.left = 0 Then
'code
End If
如果可能的话,我怎样才能检测到它是否像Windows 10一样被捕捉到屏幕的四分之一?
答案 0 :(得分:0)
没有与捕捉相关联的表单事件,因此要确定表单是否已被捕捉,您必须处理“调整大小”事件,并计算它是否(可能)被捕捉。这是寻找左或右对齐的代码,您可以扩展其他可能的快照的原则:
Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
If Not LeftRightSnapped() Then
SaveScreenSize()
Else
Debug.Print("Don't save sizes")
End If
End Sub
Function LeftRightSnapped() As Boolean
Dim HalfScreenWidth = Screen.PrimaryScreen.Bounds.Width / 2
Return (Me.Width = HalfScreenWidth) And ((Me.Left = 0) Or (Me.Left = HalfScreenWidth))
End Function
Sub SaveScreenSize()
Debug.Print("Save sizes here!")
End Sub