当用户单击复选框或在Winform Xtragrid中的行上单击任意位置时,选择行

时间:2018-12-12 06:01:42

标签: c# xtragrid

我有DevExpress XtraGrid控件V15.2。根据DevExpress文档link,我已经设置了gridview属性

要反转我的选择,我在行单击事件上添加了以下代码。

private void view1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            if (view1.GetFocusedRow() == null) return;
            int iCurrentRow = view1.FocusedRowHandle;
            view1.InvertRowSelection(iCurrentRow);
        }

当我单击复选框列单元格以外的任何行时,此代码运行完美。我需要的是它应该可以工作,包括Checkbox单元格。如果有任何输入将有所帮助。谢谢

编辑:(我成功了)

我设法设法使它工作。我使用了RowCellClick事件,而不是使用RowClick事件,并增加了一行。

private void view1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            if (view1.GetFocusedRow() == null) return;
            int iCurrentRow = view1.FocusedRowHandle;
            bool bIsSelect = view1.IsRowSelected(iCurrentRow);
            view1.InvertRowSelection(iCurrentRow);
            if (e.Column.ColumnType.ToString() == "System.Boolean")
                view1.InvertRowSelection(iCurrentRow);
        }

如果您在我的代码中注意到,如果我的columnType(Checkbox)为boolean,则调用第二次invertrowselection。我不确定为什么我应该打两次电话。如果有人知道,我很想学习。再次感谢你们。

0 个答案:

没有答案