You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C# WinForms中从另一个窗体刷新用户控件?

用户控件DataGridView刷新及实例化问题解决
  • 你调用 new UserControl().load_data() 没效果的核心原因是操作的是内存里的全新控件实例,根本不是当前界面上已显示的那个。哪怕构造函数传this,只要用new创建,就是和界面控件完全无关的新对象,自然不会影响界面上的DataGridView。
  • 正确做法是直接引用已经加载到界面上的UserControl实例:
    • 举个例子,如果你的UserControl放在主窗体的Panel容器里,可以通过容器获取实例:
      // 假设主窗体的Panel控件名为panelContainer
      var myControl = panelContainer.Controls.OfType<UserControl>().FirstOrDefault();
      if (myControl != null)
      {
          myControl.load_data();
      }
      
    • 更稳妥的方式是在主窗体初始化UserControl时,把它的实例保存为成员变量,之后直接调用这个变量的load_data()方法,不用每次去容器里查找。
  • 关于SQL插入数据后的刷新:既然你已经验证load()方法能刷新DataGridView,那只要把这个方法调用在界面上的实际控件实例上,就能正常触发数据刷新。

内容的提问来源于stack exchange,提问作者tsfdf T76

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:10:30