使用表单2从表单1运行Void
本文关键字:表单 运行 Void | 更新日期: 2023-09-27 18:11:21
我正在尝试从Form2执行Void并更新Form1,我已经尝试在按钮单击、Form_Close、Form1_Activated、Form1_Enter上添加它,但仍然没有进展
以下是我尝试过的:(但没有成功…
Form1.cs
public void LoadTable()
{
//Code to Populate Datagridview
string sql = "";
SqlConnection Connection = new SqlConnection(Global.Connection);
SqlCommand CMD = new SqlCommand(sql, Connection);
SqlDataAdapter DA = new SqlDataAdapter();
DA.SelectCommand = CMD;
DataSet DS = new DataSet();
DA.Fill(DS);
ApplicantsGrid.DataSource = DS.Tables[0].DefaultView;
}
private void Form1Button_Click(object sender, EventArgs e)
{
Form2 Form2 = new Form2();
Form2.showDialog();
}
Form2.cs
private void Form2Button_Click(object sender, EventArgs e)
{
Form1 Form1 = new Form1();
Form1.LoadTable();
}
这是iam制作程序的主要问题:(
我敢肯定,你在做你想做的其他事情。
您正在Form1
的新实例上调用LoadTable
。你可能想要的是按照Sayse的建议,在现有的形式上调用它。
您可能想在现有实例上调用它。你可以这样实现,例如:
Form1按钮_点击代码:
class Form1
{
public static Form1 Instance {get; private set;}
public Form1()
{
Instance = this;
//InitializeComponents and what ever else.
}
public void LoadTable()
{
//implementation
}
}
Form2代码:
private void Button_Click(object sender, EventArgs e)
{
if (Form1.Instance != null) //must be careful about this.
{
Form1.Instance.LoadTable(); //like this you will call the method on the existing instance of the form.
}
}
public partial class Form1 : Form
{
internal static Form1 ViewForm1; // Make other form run Public void from Form1
public form1()
{
InitializeComponent();
ViewForm1 = this; //Add this
}
public void DoSomething()
{
//Code here...
}
}
public partial class Form1 : Form
{
public form2()
{
InitializeComponent();
Form1.ViewForm1.ShowData(); // Call public void from form1
}
}
public partial class Form1 : Form
{
internal static Form1 ViewForm1; // Make other form run Public void from Form1
public form1()
{
InitializeComponent();
ViewForm1 = this; //Add this
}
public void DoSomething()
{
//Code here...
}
}
public partial class Form1 : Form
{
public form2()
{
InitializeComponent();
Form1.ViewForm1.ShowData(); // Call public void from form1
}
}