Devexpress GridView疯狂的MouseDown事件
本文关键字:MouseDown 事件 疯狂 GridView Devexpress | 更新日期: 2023-09-27 18:12:30
当我实现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;
}
阻止了这一点。然而,我仍然不确定为什么这可以防止这种疯狂。如有任何想法,欢迎指教
可能是因为事件已经在表单上注册了…不是gridcontrol
您可能应该检查命中是否在使用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);