0

我有一个带有数据的 devexpress 数据网格。我可以选择多行,然后单击按钮,我可以完美地取消选择所有行。但问题是我无法通过 ctrl+鼠标左键单击取消选择该行。

实际上,当我检查 visiblerowcount 值时,该行被取消选择,但在 UI 中它仍显示为选定行。

我该如何取消选择?这是选择我的网格的所有行的代码

MyGrid.TableView.SelectAll();
SelectedRecords.Text = "" + MyGridVisibleRowCount;

并取消选择按钮上的所有行单击我正在这样做

MyGrid.ClearSelection();
MyGrid.View.FocusedRowHandle = -1;
SelectedRecords.Text = "" + 0;

任何高度appericated的帮助。

谢谢 Ganesh

4

2 回答 2

0

我认为您应该使用该UnselectRow方法。试试这段代码:

MyGrid.BeginUpdate();

for (int i = 0; i < MyGrid.RowCount; i++)
{
    if (MyGrid.IsRowSelected(i))
        MyGrid.UnselectRow(i);
}

MyGrid.EndUpdate();
于 2013-09-19T10:20:20.067 回答
0

这个问题很老了。但对于新来者;

1-将字段设置为“bool isCtrlPressed=false;” 在任何方法之外。

2- 处理 gridcontrol 或 gridview 的 keydown 事件并在该事件的方法中设置“isCtrlPressed = e.Control”。

3- 处理 gridcontrol 或 gridview mouseup。放

var hitInfo = gridView.CalcHitInfo(e.Location); 
if(isCtrlPressed && hitInfo.InRow || hitInfo.InRowCell){
    if(isCtrlPressed && gridView.IsRowSelected(hitInfo.RowHandle){
        gridView.UnselectRow(hitInfo.RowHandle);
    }
}

4-最后不要忘记通过处理gridcontrol或gridview的mouseup来释放isCtrlPressed并重置“isCtrlPressed = false”

如果您停留在 hitInfo 类,您可以在 DevExpress 的支持中心内导航。我没有测试此代码,但可能需要进行 rowHandle 检查,例如是否等于 GridControl.AutoFilterRowHandle。

于 2017-01-02T14:00:55.433 回答