05-07-16, 11:23 AM
يا أسامة،
هذه محاولة سريعة لضيق الوقت، ولكن فيها عيوب.
لتجربة هذه المحاولة، أنشأ مشروع وضع فيه Form1 وForm2 وModule1 فقط
Form1
Form2
Moudle1
هذه محاولة سريعة لضيق الوقت، ولكن فيها عيوب.
لتجربة هذه المحاولة، أنشأ مشروع وضع فيه Form1 وForm2 وModule1 فقط
Form1
PHP كود :
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Form2.Show()
End Sub
Private Sub Form1_LocationChanged(sender As Object, e As System.EventArgs) Handles Me.LocationChanged
FormLocationChanged(Me, Form2)
End Sub
End Class
Form2
PHP كود :
Public Class Form2
Private Sub Form1_LocationChanged(sender As Object, e As System.EventArgs) Handles Me.LocationChanged
FormLocationChanged(Me, Form1)
End Sub
End Class
Moudle1
PHP كود :
Module Module1
<Runtime.InteropServices.DllImport("user32.dll")> _
Public Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
End Function
<Runtime.InteropServices.DllImport("user32.dll", ExactSpelling:=True, SetLastError:=True)> _
Public Function GetCursorPos(ByRef point As Point) As Boolean
End Function
Public Sub FormLocationChanged(ByVal formA As Form, ByVal formB As Form)
Dim mousePos As New Point
GetCursorPos(mousePos)
Dim rectFormB As Rectangle = formB.RectangleToScreen(formB.ClientRectangle)
If mousePos.X > rectFormB.X And mousePos.X < (rectFormB.X + rectFormB.Width) _
And mousePos.Y > rectFormB.Y And mousePos.Y < (rectFormB.Y + rectFormB.Height) _
Then
SetParent(formA.Handle, formB.Handle)
Else
SetParent(formA.Handle, Nothing)
End If
End Sub
End Module


