【问题标题】:Windows Form refresh datagridviewWindows 窗体刷新 datagridview
【发布时间】:2016-05-23 19:49:52
【问题描述】:

我对 c# 和 Windows 窗体还很陌生。我的问题是我需要在添加约会时刷新绑定的datagridview,如果没有输入约会,则需要在计时器上刷新。我有三种形式。表格 1 是登录屏幕,它打开并填充表格 3 中的约会。在输入空格键时打开表格 2,其中填充了约会信息。单击按钮以保存表格 2 我需要表格 3 来刷新。这是我的第一篇文章,希望我说得通,我已经尝试解决这个问题好几个星期了。提前感谢您的帮助。

【问题讨论】:

  • 您能否展示您的代码示例,以便我们重现它?
  • 每次输入约会信息后,您是否关闭表格 2?
  • 是的 jaredbaszsler 表格 2 会在每次输入约会时关闭。

标签: winforms datagridview refresh


【解决方案1】:

在 Form2 中,为您的按钮单击事件处理程序添加此内容,该处理程序将回调您的 Form3 单例实例:

private void button1_Click(object sender, EventArgs e)
{
    Form3.Instance.RefreshGrid();
}

然后在您的 Form3 中,您需要一个属性来保存表单的单例实例,以及一个刷新网格的方法:

public partial class Form3 : Form
{
    private static Form3 _instance;

    public static Form3 Instance
    {
        get { return _instance; }
    }

    public Form3()
    {
        if (_instance == null)
        {
            _instance = this;
        }

        InitializeComponent();
    }

    public void RefreshGrid()
    {
        this.dataGridView.Refresh();
    }
}

【讨论】:

  • 谢谢 Mangist,我完全按照你说的做了我得到了这个错误 - 错误 1 ​​类型 'namespace.Form3' 已经定义了一个名为 'Form3' 的成员,具有相同的参数类型
  • 再次检查代码,那些私有和公共静态成员需要进入您的Form3内部。
  • 公共部分类 Form3 : Form { private static Form3 _instance;公共静态 Form3 实例 { 获取 { 返回 _instance; } } 私人 Form1 form1; public Form3() { if (_instance == null) { _instance = this; } InitializeComponent();绑定网格();
  • 不要将新文件添加到您的项目中。将 Form3 中的这些属性和方法放入 Form3 类中。你现在有 2 个 Form3。
  • 嗨 Mangist 我按照你的建议做了,但仍然没有刷新网格。
猜你喜欢
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 2010-12-02
相关资源
最近更新 更多