C# 从另一个窗体调用侦听器
我的主窗体显示一些信息,同样的信息可以在第二个窗体中编辑。主页中的信息从数据库加载(到DGV),并在触发TabControl listener时加载。在第二个表单中,我有一个按钮可以更改数据库中的信息,当我更改它时,我的主表单会显示错误的信息,直到我自己实际触发TabControl侦听器。当我在第二个窗体中单击按钮时,如何使TabControl listener自动调用?如果第二个窗体是一个弹出对话框,将完成并关闭,您可以这样做:C# 从另一个窗体调用侦听器,c#,listener,C#,Listener,我的主窗体显示一些信息,同样的信息可以在第二个窗体中编辑。主页中的信息从数据库加载(到DGV),并在触发TabControl listener时加载。在第二个表单中,我有一个按钮可以更改数据库中的信息,当我更改它时,我的主表单会显示错误的信息,直到我自己实际触发TabControl侦听器。当我在第二个窗体中单击按钮时,如何使TabControl listener自动调用?如果第二个窗体是一个弹出对话框,将完成并关闭,您可以这样做: SecondForm secondForm = new Seco
SecondForm secondForm = new SecondForm();
secondForm.ShowDialog();
// ShowDialog will block until the new form is closed.
RefreshData(); // we know that the user is done with the second form, so we can check for changes here.
否则,您可以传入对父窗体的引用,并根据需要从子窗体更新它。在您的家长表格中:
SecondForm secondForm = new SecondForm(this); // pass a reference to the parent form into the child form's constructor
secondForm.Show(); // unlike ShowDialog(), Show() will not block the parent form. The user can use both forms at the same time.
然后在您的子表单中:
FirstForm ParentForm { get; set; }
public SecondForm(FirstForm parent)
{
InitializeComponent();
this.ParentForm = parent; // store the reference for later use
}
private void button1_Click(object sender, EventArgs e)
{
ParentForm.Name = txtName.Text; // set a public property on the parent form
ParentForm.Address = txtAddress.Text;
}
第二个建议更好,因为我希望能够同时使用这两种形式