如何从子Winform刷新父Winform?

时间:2019-03-15 07:04:48

标签: c# .net winforms

父“窗口窗体”按钮鼠标移动事件已正确进入子窗口窗体的状态栏标签中,但是相反的情况不起作用,这意味着“子窗口窗体按钮鼠标移动事件未显示到父窗口表单状态栏标签,请帮助

enter image description here

2 个答案:

答案 0 :(得分:1)

做到这一点的一种好方法是在子类中使用事件:

首先,声明事件:

public partial class ChildForm: Form
{
        public event EventHandler ButtonClicked;
        public ChildForm()
        {
            InitializeComponent();
        }
}

然后在子表单的按钮onClick方法中调用它:

...

ButtonClicked?.Invoke();

...

如果您的onclick事件是button_onclick,则它看起来像:

private void button_onclick(object sender, EventArgs e)
{
      ButtonClicked?.Invoke();      

}

并在从父表单中声明此子表单时,将刷新登录名添加到此事件中:

var childForm = new ChildForm();
childForm.ButtonClicked += (e,args)=>{
//put the logic here
}
childForm.Show();

答案 1 :(得分:0)

您可以使用如下引用:

   public partial class MainForm : Form
    {
    YourChildForm ycf = new YourChildForm(this);
    ycf.Show();
    }

以您的孩子的形式:

public partial class YourChildForm : Form
{
   MainForm mf_ref
   public YourChildForm(MainForm mf)
   {
      InitializeComponent();
      mf_ref = mf;
   }
}

现在,您只需使用

就可以访问主窗体上的每个公共方法
mf_ref.SomeMethod();