// When this DragPictureBox is clicked public void MouseClicked(object sender, MouseEventArgs e) { Parent = Parent.Parent.Parent.Parent.Parent; // Gets and stores the Form this DragPictureBox is contained by Enabled = false; // Disables this component so that it can be placed when dragging has completed followMouse.Start(); // Start the followMouse timer to ensure that this DragPictureBox follows the mouse during dragging BringToFront(); // Bring this DragPictureBox to the front of the form activeDropGrid = ((GameForm)Parent).getDropGrid(); // Set the activeDropGrid by extracting this value from the parent form activeDropGrid.activeDragPB = this; // Update the active PictureBox of the extracted DropGrid to be this DragPictureBox UpdateSnappingRegion(activeDropGrid); // Update the snapping region stored by this DragPictureBox to the one defined by the extracted DropGrid DoDragDrop(Image, DragDropEffects.Copy); // Start a DragDrop operation }
// Used to update the snapping region held by this DragPictureBox public void UpdateSnappingRegion(DropGrid dropGrid) { currentSnapRegion = new SnappingRegion(dropGrid.GetSnappingRegion()); // Update the snapping region to the current state of the supplied DropGrid's snapping region currentSnapRegion.snapMode = (int)SnapMode; // Update the snap mode of our snapping region to the SnapMode of this DragPictureBox currentSnapRegion.AddImageOffsets(this); // Add the image offsets to our snapping region using this DragPictureBox }