In my program, I want the user to be able to move an MDI child window anywhere inside the MDI container but I need it to be kept completely inside the container boundary. For example, the upper left corner should never be at a location less than 0,0 when moved left or up. Currently, if I slide the child window too far left, it extends outside of the MDI container window and the MDI container shows the bottom scroll bar.
Is there a way to prevent the child window from moving outside of the boundaries of the container window? I tried adding code to the .move (see below) so that if the new location was less than 0,0 then it reset it to 0,0 but then the child window controls flicker as the window is moved beyond 0,0 and the logic moves it back to 0,0. It appears that even though the code changes the location to 0,0 and the window shows the child moved to 0,0, when the mouse moves again, the window jump back to its unmoved location.
Private Sub MyForm_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Move
If Location.X < 0 Then
Location = New Point(0, Location.Y)
End If
If Location.Y < 0 Then
Location = New Point(Location.X, 0)
End If
End Sub