/// <summary>
        /// Raises the DragEnter event.
        /// </summary>
        /// <param name="e">A DragEventArgs that contains the event data.</param>
        protected override void OnDragEnter(DragEventArgs e)
        {
            //	Call the base class's method so that registered delegates receive the event.
            base.OnDragEnter(e);

            //	Find the drag-and-drop lightweight control at the mouse position.
            LightweightControl lightweightControl = GetDragDropLightweightControlAtClientPoint(PointToClient(new Point(e.X, e.Y)));

            //	If there is a drag-and-drop lightweight control at the mouse position, the event
            //	is for it.  Otherwise, it's for this control.
            if (lightweightControl != null)
            {
                //	Set the drag-and-drop lightweight control and raise its DragEnter event.
                dragDropLightweightControl = lightweightControl;
                e.Effect = DragDropEffects.None;
                dragDropLightweightControl.RaiseDragInside(e);
            }
        }
        /// <summary>
        /// Update the drag-and-drop lightweight control.  Detects whether the drag-and-drop
        /// lightweight control has changed, and raises the appropriate events, if it has.
        /// </summary>
        /// <param name="e">A MouseEventArgs containing the event data.</param>
        private void UpdateDragDropLightweightControl(DragEventArgs e)
        {
            //	Find the drag-and-drop lightweight control at the mouse position.
            LightweightControl lightweightControl = GetDragDropLightweightControlAtClientPoint(PointToClient(new Point(e.X, e.Y)));

            //	If the drag-and-drop lightweight control is changing, make the change.
            if (lightweightControl != dragDropLightweightControl)
            {
                //	If we have a drag-and-drop lightweight control, raise its OnDragLeave event.
                //	Otherwise, call the base class's method to raise the OnDragLeave event on
                //	this control.
                if (dragDropLightweightControl != null)
                    dragDropLightweightControl.RaiseDragOutside(EventArgs.Empty);
                else
                    OnDragOutside(EventArgs.Empty);

                //	Set the drag-and-drop lightweight control.
                dragDropLightweightControl = lightweightControl;
                e.Effect = DragDropEffects.None;

                //	If we have a drag-and-drop lightweight control, raise its DragEnter event.
                //	Otherwise, call the base class's method to raise the DragEnter event on this
                //	control.
                if (dragDropLightweightControl != null)
                    dragDropLightweightControl.RaiseDragInside(e);
                else
                    OnDragInside(e);
            }
        }