【问题标题】:Unable to use Multi Select property in winform DataGridView无法在 winform DataGridView 中使用多选属性
【发布时间】:2015-12-22 06:35:42
【问题描述】:


我有一个 DataGridView 控件,在这里如果我选择一行,然后按 shift 键,然后选择另一行,它正在选择多行,这是预期的行为..
但我的问题是,如果我以编程方式选择行 使用

 myGridView.Rows1.Selected = true;
这在 UI 中可见,但是如果我按 Shift 然后按另一行,它只会选择一行。
下面给出的是我用来绑定数据以控制的代码 sn-p

【问题讨论】:

  • "但是如果我按 Shift 键,然后按另一个键"。你还按什么键?我在一个新应用程序中重建了一个简单的DataGridView,它似乎工作正常。你试过吗?只需创建一个干净的新应用程序,然后只将您的网格放在此应用程序中。行为是否仍然存在?
  • @Roman :对不起,我打错了,另一个键意味着另一行。如果你从 UI 中选择行,然后使用 shift 键进行多选,这是有效的。
  • @MsYvette :是的,女士,我已经做了 multiselect = true ..
  • 啊,好的。好吧,你试过我上面的建议了吗?创建一个新应用程序,然后只将您的DataGridView 放入其中,看看会发生什么?
  • 如果对两个不同的网格视图使用相同的数据绑定,则不是绑定导致问题,否则会导致两个网格视图都出现问题。你听说过“分而治之”吗?如果调试器没有帮助你,你可以使用这个调试方法。只需将您的主应用程序分成几部分,然后测试该应用程序。这样做直到您的应用程序正常工作。然后你知道哪个代码部分导致了问题。如果您在问题中添加更多与 gridview 相关的代码,我们也许可以为您提供更多帮助。

标签: c# winforms datagridview


【解决方案1】:

不要按住Shift 键。

您应该按住键盘上的Ctrl 键来选择多行。

编辑: 如果您想使用Shift 键从以编程方式选择的行开始选择一系列行。然后您需要将DataGridView.CurrentCell 移动到以编程方式选择的索引。

此示例选择行索引 4 并使其为 Shift 键做好准备:

myGridView.Rows[4].Selected = true;
myGridView.CurrentCell = myGridView[0, 4];

【讨论】:

  • 这是真的,如果用户想要选择多个不连续的行。但是如果用户想要选择多行,包括中间行,使用Shift效率更高。
  • 我知道他想要不连续的行。在这种情况下,他只需要将当前单元格移动到被选中的索引处。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 2020-07-05
相关资源
最近更新 更多