我的XtraGrid上有MouseDown事件,它不想在同一列上第二次触发。
它识别第一次单击,但除非我在尝试单击原始行/列之前单击另一列或行,否则不会发生任何事情。
谁能告诉我我失踪了什么?以下是MouseDown事件中的代码:
var hitInfo = gridViewSpecialty.CalcHitInfo(e.Location);
if (hitInfo.InRowCell)
{
int nRow = hitInfo.RowHandle;
GridColumn column = hitInfo.Column;
LinkClick(nRow, column);
}
谢谢!鲍勃
答案 0 :(得分:0)
这很可能是由于事件错误导致的。如果你在该陈述周围放置一个Try{}catch{}
,我愿意下注,你可能会捕获错误。
这是我在尝试使用网格捕获用户点击事件时使用的内容。我使用双击事件,如下所示:
private void gcMainGrid_DoubleClick(object sender, EventArgs e)
{
try
{
GridControl gc = (GridControl)sender;
DevExpress.Utils.DXMouseEventArgs dxMEA = (DevExpress.Utils.DXMouseEventArgs)e;
GridView gv = (GridView)gc.MainView;
int iRowHandle = gv.CalcHitInfo(dxMEA.X, dxMEA.Y).RowHandle;
//Check to see if the user is on a row.
if (iRowHandle >= 0)
{
//Do something here.
}
catch(Exception ex)
{
if (Debugger.IsAttached)
Debugger.Break();
else
throw(ex);
}
}
这将获得用户点击的行的RowHandle。我认为这是你之后的事情,但我不会使用鼠标按下事件。