我有一个包含数据的devexpress数据网格。我可以选择多行,点击按钮我完全取消选中所有行。但问题是我无法通过ctrl +鼠标左键单击取消选择该行。
实际上,当我检查visiblerowcount值时,取消选择该行,但在UI中它仍然显示为选定的行。
如何取消选举? 这是用于选择网格的所有行的代码
MyGrid.TableView.SelectAll();
SelectedRecords.Text = "" + MyGridVisibleRowCount;
并取消选中按钮点击的所有行我正在这样做
MyGrid.ClearSelection();
MyGrid.View.FocusedRowHandle = -1;
SelectedRecords.Text = "" + 0;
任何高度重视的帮助。
由于 内甚
答案 0 :(得分:0)
我认为您应该使用UnselectRow
方法。试试这段代码:
MyGrid.BeginUpdate();
for (int i = 0; i < MyGrid.RowCount; i++)
{
if (MyGrid.IsRowSelected(i))
MyGrid.UnselectRow(i);
}
MyGrid.EndUpdate();
答案 1 :(得分:0)
这个问题很老了。但对于新来者;
1-将字段设置为&#34; bool isCtrlPressed = false;&#34;除了任何方法之外。
2-处理gridcontrol或gridview的keydown事件并设置&#34; isCtrlPressed = e.Control&#34;在那个事件的方法。
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并重置&#34; isCtrlPressed = false&#34;
来释放isCtrlPressed如果你坚持使用hitInfo课程,你可以在DevExpress的支持中心内导航。我没有测试这段代码,但可能需要一个rowHandle检查,例如它是否相等GridControl.AutoFilterRowHandle。