【发布时间】:2013-01-15 10:58:27
【问题描述】:
我们有一个数据网格视图。它的 multiselect 属性设置为 true。 这个 datagridview 将在特定的时间间隔内更新它的行,比如一两秒。
所以假设我将选择一行,然后按住 shift 键并选择另一行,然后选择这两者之间的整行没有任何问题。
假设如果我选择一行,然后更新 gridview,然后如果我试图通过按住 shift 键选择另一行,那么它不会选择整行,而是选择最后点击的行。
所以我不确定它为什么会发生,所以如果我选择网格的第 2 行并且更新可能是这一行被下移到第 5 行,然后我试图选择另一行持有 shift键,则发生此错误。
任何人请就这个问题提出您的建议。
更新后选择代码
for (int nRow = 0; nRow < Grid.Rows.Count; nRow++)
{
foreach (string cookieIdval in SelectedCookies)
{
if (Grid.Rows[nRow].Cells[ColCookieID].Value.ToString() == cookieIdval.ToString())
{
Grid.Rows[nRow].Cells[ColCookieID].Selected = true;
break;
}
}
}
【问题讨论】:
-
如何更新 datagridview?
-
我对你的问题感到困惑。您是否希望在 Shift 选择时它不会选择其间的所有行?如果我理解错了,并且如果您想在更新时选择许多行,那对我来说听起来不是一件好事。
-
@hattenn :很抱歉造成混乱。我想要的是无论gridview是否更新,多选都应该适用于所有情况。即它应该在所有情况下选择多行..希望你清除这个..
-
但是您的预期行为是什么?如果选择第一行和第十行之间的行,如果第二行移动到第 50 位?你还希望它被选中吗?那么当您选择行时,将使用哪种状态来选择数据行?更新前,还是更新后?
-
@HamletHakobyan :它使用订阅技术。因此,每当gridview中的某些属性或列发生变化时,它都会更新gridview。
标签: c# .net winforms datagridview