Devexpress GridView疯狂的MouseDown事件

时间:2013-05-07 11:31:24

标签: c# gridview devexpress mousedown

当我实现GridView的MouseDown事件时,在我点击GridView内部的任何内容后,我的程序变得疯狂并开始将屏幕上的所有内容视为GridView,无论我在哪里单击都调用MouseDown事件。我不确定为什么会这样,但我找到了这段代码:

    GridHitInfo downHitInfo = null;

    private void view_MouseDown(object sender, MouseEventArgs e)
    {
        GridView view = sender as GridView;
        downHitInfo = null;
        GridHitInfo hitInfo = view.CalcHitInfo(new Point(e.X, e.Y));
        if (Control.ModifierKeys != Keys.None) return;
        if (e.Button == MouseButtons.Left && hitInfo.RowHandle >= 0)
            downHitInfo = hitInfo;

    }

阻止了这一点。但是,我仍然不确定为什么这会阻止这种疯狂。任何有关正在发生的事情的想法都值得赞赏

2 个答案:

答案 0 :(得分:0)

可能是因为事件已在表单上注册...而不是gridcontrol

答案 1 :(得分:0)

您应该使用hitInfo.InRowCell来检查点击是否在一行的单元格中,如下所示:

GridView view = sender as GridView;
GridHitInfo hitInfo = view.CalcHitInfo(new Point(e.X, e.Y));

// Verify that the click was in a cell of a row, if not, don't do anything
if (!hitInfo.InRowCell)
    return;

PS:您可以使用e.Location代替创建新点new Point(e.X, e.Y)

GridHitInfo hitInfo = view.CalcHitInfo(e.Location);