单击按钮时如何在子窗体中刷新父窗体?

Ign*_*nas 4 c# winforms

然后关闭子窗体正在运行此命令:

private void listView1_MouseDoubleClick(object sender, EventArgs e)
{
    ListViewItem item = listView1.SelectedItems[0];
    string s = item.SubItems[6].Text;
    q = m;
    CommercialOfferEditProperties ob = new CommercialOfferEditProperties(s, q);
    ob.FormClosed += new FormClosedEventHandler(ob_FormClosed);
    ob.Show(); //show child
}

void ob_FormClosed(object sender, FormClosedEventArgs e)
{
   some action
}
Run Code Online (Sandbox Code Playgroud)

但是ob_FormClosed如果在子窗体中单击按钮,如何运行操作或运行创建的新操作?

Max*_*lov 6

  1. 向您的子表单添加OnClick事件(CommercialOfferEditProperties)
  2. 在父表单中订阅.
  3. 每次单击子窗体按钮时触发OnClick.

这样你就可以通知家长.

例:

//Child form declaration

public class CommercialOfferEditProperties:Form
{

public event EventHandler ButtonClicked;

public void NotifyButtonClicked(EventArgs e)
{
       if(ButtonClicked != null)
       ButtonClicked(this,e);

}

...

}
Run Code Online (Sandbox Code Playgroud)

家长表格:

private void listView1_MouseDoubleClick(object sender, EventArgs e)
        {
            ListViewItem item = listView1.SelectedItems[0];
            string s = item.SubItems[6].Text;
            q = m;
            CommercialOfferEditProperties ob = new CommercialOfferEditProperties(s, q);
            ob.FormClosed += new FormClosedEventHandler(ob_FormClosed);
            ob.ButtonClicked += new EventHandler(ob_ButtonClicked);
            ob.Show(); //show child
        }

        void ob_FormClosed(object sender, FormClosedEventArgs e)
        {
           //process form close
        }

        void ob_ButtonClicked(object sender, EventArgs e)
        {
           //process button clicked
        }
Run Code Online (Sandbox Code Playgroud)