Событие DevExress XtraGrid MouseDown не запускается во второй раз

У меня есть событие MouseDown в моем XtraGrid, которое не хочет запускаться во второй раз в одном и том же столбце.

Он распознает первый щелчок, но если я не щелкну другой столбец или строку, прежде чем пытаться щелкнуть исходную строку/столбец, ничего не произойдет.

Может ли кто-нибудь сказать мне, что мне не хватает? Вот код события MouseDown:

         var hitInfo = gridViewSpecialty.CalcHitInfo(e.Location);
         if (hitInfo.InRowCell)
         {
             int nRow = hitInfo.RowHandle;
             GridColumn column = hitInfo.Column;
             LinkClick(nRow, column);

         }

Спасибо!! Боб


person Bob Bartel    schedule 05.06.2014    source источник
comment
В каком событии находится приведенный выше код?   -  person Robert    schedule 05.06.2014
comment
Событие gridView_MouseDown.   -  person Bob Bartel    schedule 06.06.2014


Ответы (1)


Скорее всего, это связано с ошибкой события. Я готов поспорить, что если вы поставите 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 строки, на которую нажимает пользователь. Я думаю, это то, что вам нужно, но я бы не стал использовать для этого событие мыши.

person Robert    schedule 05.06.2014