我做了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();
}
但是dosnt工作。我做错了什么?
感谢。
答案 0 :(得分:0)
您无法创建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();
}