gpt4 book ai didi

c# - 在更新 WinForms 中的控件(例如 DataGridView)时闪烁

转载 作者:太空狗 更新时间:2023-10-29 19:49:00 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个显示所选对象数据的 DataGridView 控件。当我选择不同的对象时(在上面的组合框中),我需要更新网格。不幸的是,不同的对象具有完全不同的数据,甚至不同的列,因此我需要清除所有现有数据和列,创建新列并添加所有行。完成此操作后,整个控件会可怕地闪烁并且需要很长时间。有没有一种通用的方法可以让控件处于更新状态,这样它就不会重新绘制自己,然后在我完成所有更新后重新绘制它?

使用 TreeViews 当然是可能的:

myTreeView.BeginUpdate();
try
{
//do the updates
}
finally
{
myTreeView.EndUpdate();
}

是否有一种通用的方法可以对其他控件(尤其是 DataGridView)执行此操作?

更新:抱歉,我不确定我是否足够清楚。我看到“闪烁”,因为在单次编辑后控件在屏幕上重新绘制,所以您可以看到滚动条缩小等。

最佳答案

人们似乎忘记了一个简单的解决方法:

Object.Visible = false;

//do update work

Object.Visible = true;

我知道这看起来很奇怪,但确实有效。当对象不可见时,它不会重绘自己。但是,您仍然需要执行 beginend 更新。

关于c# - 在更新 WinForms 中的控件(例如 DataGridView)时闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com