我的场景:我有一个datagridview,它包含一些数据。用户可以在该数据网格视图中选择一行或多行,他们需要知道有关他们所选行的摘要。
在datagridview中处理多行非常简单,我可以轻松获取用户需要的内容:两个数字表示选择了多少项,以及这些行中的总重量。我将该数据传递给一个小的摘要表单进行显示,然后我将代码显示在dgv.SelectionChange()
下显示该表单。
但接下来是灾难:每次用户选择一行时,都会出现该表格。也就是说,如果用户选择了20行,他们将会看到20个摘要表格......以及其他任何内容,你可以想象。我想在SelectionChange()
里放一些东西来检查用户是否已经停止了他们的选择......但是想不到任何东西。
这似乎是一件非常简单的事情,但不知怎的,我无法弄明白...... 我的问题是,如何知道用户是否在datagridview中停止了他们的选择?
答案 0 :(得分:1)
我仍然没有足够的分数来评论,所以我的答案是我不认为你可以可靠而不添加另一个控件(即按钮)。你无法读懂用户的想法,因为行数可以变化,你怎么知道?您可以尝试类似于光标离开DGV的情况,但也会遇到问题。虽然对于那些只选择1行的人来说是一次额外的点击,但我仍然认为有一个“获取摘要”按钮就可以了。有点像选择要比较的项目时 - 您可以单击任意数量的项目,虽然它们可能会显示您目前在另一个区域中选择了哪些项目,但在您单击“比较”按钮之前,比较表不会显示。
答案 1 :(得分:0)
据我所知,你实际上有两种选择。
添加按钮
由于您无法确定选择何时完成,只需添加一个按钮即可调用您要显示的表单,这样您就可以确定只有在用户要求时才会显示该按钮。
使用计时器
另一个选择是使用定时器,每次选择更改时,您将定时器重置为一秒(以保持示例简单)。 只要计时器打勾,您就可以调用表格并停止计时器。这样它会在用户做出选择后触发一秒钟(或更少)并给他一秒钟来改变它......
谦虚地说,我认为按钮选项是最好的,因为您可以为用户提供电源。也许他们会想要选择一些行但不想看到你的表格,因为他们只会复制它以将其粘贴到其他地方......