我在我的C#程序中有一个DataGridView对象,根据打开的过滤器设置,有时会有隐藏的行。我将DGV中的MultiSelect
设置设置为True,当单击另一个按钮时,每行的ID将移动到ListBox。但是,我注意到,如果我按下CTRL-A,所有行(包括隐藏的行)也会被移动。我通过将Visible
属性更改为False来隐藏行。
我环顾四周但找不到让CTRL-A命令只选择可见行的解决方案。这可能吗?
谢谢!
答案 0 :(得分:5)
您可以通过处理网格的KeyDown
事件来实现此自定义行为。在你的情况下,你可以这样写:
private void grid_KeyDown(object sender, KeyEventArgs e)
{
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
{
foreach (DataGridViewRow row in grid.Rows)
{
row.Selected = row.Visible;
}
e.Handled = true;
e.SuppressKeyPress = true;
}
}