C# 刷新时,我的DataGridView会闪烁

C# 刷新时,我的DataGridView会闪烁,c#,winforms,datagridview,C#,Winforms,Datagridview,如果我刷新datagridview中的某些数据,我将失去对选定单元格的关注并且随机文本闪烁 为什么会发生这种情况?在其他应用程序中,我看不到这个问题,所以我可以解决这个问题,但如何解决 我通过以下代码刷新数据: SBind.DataSource = DTable; // SBind is binded my grid.DataSource = SBind SBind.ResetBindings(false); 试试这个: SBind.SuspendLayout(); SBind.DataSou

如果我刷新datagridview中的某些数据,我将失去对选定单元格的关注并且随机文本闪烁

为什么会发生这种情况?在其他应用程序中,我看不到这个问题,所以我可以解决这个问题,但如何解决

我通过以下代码刷新数据:

SBind.DataSource = DTable; // SBind is binded my grid.DataSource = SBind
SBind.ResetBindings(false);
试试这个:

SBind.SuspendLayout();
SBind.DataSource = DTable;
SBind.ResetBindings(false);
SBind.ResumeLayout(true);
您还可以尝试启用网格的
双缓冲
,如下所示:

typeof(Control).GetProperty("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance)
               .SetValue(SBind, true, null);
这也有助于:

dataGridView1.DoubleBuffered(true);

@Greag.Deay只需保存一些标识(以标识所选行),然后在刷新网格后,找到该行并将其标记为所选。不管怎样,我不知道为什么需要用这种方式刷新网格。