/// <summary>
        /// Resets all of the member fields to their default values.
        /// </summary>
        private void ResetMembersToDefault()
        {
            if (m_draggedRow != null)
            {
                m_draggedRow.Dispose();
            }

            m_draggedRow        = null;
            m_mouseOverRowRect  = Rectangle.Empty;
            m_mouseOverRowIndex = -1;
        }
        /// <summary>
        /// 确定被选中的行,并构造DraggedDataGridRow实例
        /// </summary>
        void RowDragDataGrid_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                Rectangle rowRect = this.GetRowDisplayRectangle(e.RowIndex, false);

                if (ShowColumnHeaderWhileDragging)
                {
                    Bitmap columnImage = (Bitmap)Tools.ScreenImage.GetScreenshot(this.Handle, rowRect.Location, rowRect.Size);
                    m_draggedRow = new DraggedDataGridRow(e.RowIndex, rowRect, e.Location, columnImage);
                }
                else
                {
                    m_draggedRow = new DraggedDataGridRow(e.RowIndex, rowRect, e.Location);
                }

                m_draggedRow.CurrentRegion = rowRect;
            }
            this.Update();
        }
        /// <summary>
        /// 确定被选中的行,并构造DraggedDataGridRow实例
        /// </summary>
        void RowDragDataGrid_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                Rectangle rowRect = this.GetRowDisplayRectangle(e.RowIndex, false);

                if (ShowColumnHeaderWhileDragging)
                {
                    Bitmap columnImage = (Bitmap)Tools.ScreenImage.GetScreenshot(this.Handle, rowRect.Location, rowRect.Size);
                    m_draggedRow = new DraggedDataGridRow(e.RowIndex, rowRect, e.Location, columnImage);
                }
                else
                {
                    m_draggedRow = new DraggedDataGridRow(e.RowIndex, rowRect, e.Location);
                }

                m_draggedRow.CurrentRegion = rowRect;
            }
            this.Update();
        }
        /// <summary>
        /// Resets all of the member fields to their default values.
        /// </summary>
        private void ResetMembersToDefault()
        {
            if (m_draggedRow != null)
                m_draggedRow.Dispose();

            m_draggedRow = null;
            m_mouseOverRowRect = Rectangle.Empty;
            m_mouseOverRowIndex = -1;
        }