通过子窗体刷新父窗体,或者其他窗体

方法一:利用事件

父窗体中注册事件及事件处理程序(用于两个窗体):

     private void btnAdd_Click(object sender, EventArgs e)
     {

                frmCustomer BabyWindow = new frmCustomer();       //实例化一个子窗体
                BabyWindow.UpdateDataGridView += new EventHandler(BabyWindow_UpdateDataGridView);   //注册事件
                BabyWindow.ShowDialog();         

   }

  public  void BabyWindow_UpdateDataGridView(object sender, EventArgs e)
  {

     LoadData()  //刷新父窗体中内容

 }


子窗体中定义事件及触发事件:

       public event EventHandler UpdateDataGridView = null;//定义一个处理更新DataGridView控件内容的方法

       protected void UpdateData()
        {
            if (UpdateDataGridView != null)//当触发更新DataGridView事件时
            {
                UpdateDataGridView(this, EventArgs.Empty);//更新DataGridView控件中的内容
            }
        }

      public void Add()    //子窗体中点击新增按钮时,触发事件
        {      
            UpdateData();
        }

方法二,定义窗体变量(用于多个窗体之间)

1、FormMain窗体中定义其他两个窗体变量,注册事件以及事件处理程序

frmUserList _frmUserList = null;    //定义frmUserList 窗体变量

frmHID fHID = null;                             //定义frmHID窗体变量

    

 private void FormMain_Load(object sender, EventArgs e)   //加载fHID

      {

               fHID = new frmHID ();       //实例化一个子窗体
               fHID .Show();        

     }

     private void btnAdd_Click(object sender, EventArgs e)    //FormMain主窗体中菜单操作代码
     {

                _frmUserList = new frmCustomer();       //实例化一个子窗体
                _frmUserList .UpdateDataGridView += new EventHandler(load_Click);   //注册事件
                _frmUserList .ShowDialog();        

     }

       public void load_Click(object sender, EventArgs e)          //A
        {        
            fHID.loadUser_Click();      //刷新其他窗体中的内容         //此处执行至B处
        }

 2、 要刷新的窗体中(frmHID )中定义刷新代码:

       public void loadUser_Click()                //B
        {
            //加载类型
            ipdUser_Load();
            tbUser.txtValue.Text = "所有";
        }


3、触发刷新的窗体中(frmUserList )中定义事件及触发事件:

 public event EventHandler UpdateDataGridView = null;//定义一个处理更新DataGridView控件内容的方法

       protected void UpdateData()
        {
            if (UpdateDataGridView != null)//当触发更新DataGridView事件时
            {
                UpdateDataGridView(this, EventArgs.Empty);         //此处执行至A处
            }
        }

      public void Add()    //子窗体中点击新增按钮时,触发事件
        {      
            UpdateData();
        }


     






你可能感兴趣的:(通过子窗体刷新父窗体,或者其他窗体)