【问题标题】:Refresh Form1 dataGrid from another form c# winform从另一个表单刷新Form1 dataGrid c# winform
【发布时间】:2017-01-16 19:27:00
【问题描述】:

我制作了 2 个表格。 1个“主窗体”和另一个类似“模态窗口”的数据插入。

在 Form1 上,我有这个代码:

public void CargarDataGrid_Estudiantes()
    {
        MySqlConnection con = new MySqlConnection(conString);
        con.Open();
        MySqlCommand cmd = new MySqlCommand("showStudent", con);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.AddWithValue("@pid_School", Login.ID_SCHOOL_LOGIN);

        MySqlDataAdapter DataAdapter = new MySqlDataAdapter();
        DataTable DataTable = new DataTable();

        DataAdapter.SelectCommand = cmd;
        DataAdapter.Fill(DataTable);

        dataGrid_Estudiantes.DataSource = DataTable;
        dataGrid_Estudiantes.Columns[0].HeaderCell.Value = "id_Student";
        dataGrid_Estudiantes.Columns[0].Visible = false;
        Bla bla bla bla bla........................
    }

我尝试在 form2“关闭按钮”的 userControl 上使用此代码刷新我的网格:

private void btn_cerrarModal_Click(object sender, EventArgs e)
    {
        Pantallas.Estudiantes estu = new Estudiantes();
        estu.CargarDataGrid_Estudiantes();

        ((Modal)this.TopLevelControl).Close();
    }

但不工作。我做错了什么?

谢谢。

【问题讨论】:

  • grid 不需要刷新,data 需要。

标签: c# mysql winforms datagrid


【解决方案1】:

您不能创建 Pantallas.Estudiantes 的新实例(在 form2 中)并期望访问另一个实例(form1/Pantallas.Estudiantes 的“原始”实例)。

使用表格2的DialogResult值来判断是否需要刷新Form1

致电Form2 来自 Form1:

 private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            if (f2.ShowDialog() == DialogResult.OK)

            {
                // refresh form
                CargarDataGrid_Estudiantes();
            } 
        }

用户按下form2上的关闭按钮:

  private void button1_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
            this.Close();
        }

Form2 上的另一个按钮中,如果有不想刷新 Form1 的情况,您可以执行那段代码:

 private void button2_Click(object sender, EventArgs e)
            {
                this.DialogResult = DialogResult.Cancel;
                this.Close();
            }

【讨论】:

    猜你喜欢
    • 2017-06-03
    • 1970-01-01
    • 2012-05-25
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多