c# - 为什么datagridview不刷新?

标签 c# .net winforms data-binding datagridview

这是我按下按钮后发生的事情:

    dataGridView1.DataSource = ConnectandReadList(some_query);
    dataGridView1.Refresh();

请注意,我正在使用另一个名为 chart1 的控件执行此操作,它可以正常工作,它用新的重新查询数据填充它,但 datagridview 只是停留一样的

第一次尝试成功。

然而我第二次按下它时,它显示同样的东西!

有人知道我是否正确地刷新了 datagridview 吗?

最佳答案

此处与@Fake 有细微差别,但调用 Refresh() 将不起作用,因为仅在 dataGridView 上调用它

"Forces the control to invalidate its client area and immediately redraw itself and any child controls."

由于此方法与任何控件相关,与对象相关数据的刷新无关。引用here (DataGridView Methods)向下滚动到 Refresh,您将看到链接指向 Control.Refresh Method

你想要这样的东西;

BindingSource bs = new BindingSource(); 
bs.DataSource = ConnectandReadList(some_query);
dataGridView1.DataSource = bs;
bs.ResetBindings(false)

然后您可以在 bs(您的 BindingSource)上调用 ResetBindings()

BindingSource bs = new BindingSource(); 
private refreshData()
{
    bs.ResetBindings(false)
}

关于c# - 为什么datagridview不刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4108006/

相关文章:

c# - 如何从另一个窗体将焦点设置到主窗体中的对象(文本框)(C#)

c# - 如何为同一个控件实现单击和拖动?

.net - 有人可以给世界自然基金会一个很好的教程吗?

c# - 当底层匿名类型相似时,如何在Linq中合并两个列表?

c# - 在 MenuStrip 中添加水平分隔符

c# - 执行代码修复后如何将插入符号移动到特定位置

.net - 从WPF页面继承

c# - Clean XML 序列化分层递归数据结构

c++ - 在控制台应用程序和 Windows 窗体之间共享数据

c# - Azure DocumentDB - HTTP 请求中找到的 MAC 签名与计算的签名不同