天天看點

Winform 重新整理父窗體的值

Winform 重新整理父窗體的值

調用窗體(父):Form1,被調用窗體(子):Form2

方法1:   所有權法

//Form1:

//需要有一個公共的重新整理方法

public   void   Refresh_Method()

{

//...

}

//在調用Form2時,要把Form2的所有者設為Form1

Form2   f2   =   new   Form2()   ;

f2.Owner   =   this;

f2.ShowDialog()   ;

//Form2:

//在需要對其調用者(父)重新整理時

Form1   f1   ;

f1   =   (Form1)this.Owner;

f1.Refresh_Method()   ;

方法2:自身傳遞法

//Form1:

//需要有一個公共的重新整理方法

public   void   Refresh_Method()

{

//...

}

Form2   f2   =   new   Form2()   ;

f2.ShowDialog(this)   ;

//Form2:

private   Form1   p_f1;

public   Form2(Form1   f1)

{

InitializeComponent();

p_f1   =   f1;

}

//重新整理時

p_f1.Refresh_Method()   ;

方法3:屬性法

//Form1:

//需要有一個公共的重新整理方法

public   void   Refresh_Method()

{

//...

}

//調用時

Form2   f2   =   new   Form2()   ;

f2.P_F1   =   this;

f2.Show()   ;

//Form2:

private   Form1   p_f1;

public   Form1   P_F1

{

get{return   p_f1;}

set{p_f1   =   value;}

}

//重新整理時

p_f1.Refresh_Method()   ;

方法4:委托法

//Form1:

//需要有一個公共的重新整理方法

public   void   Refresh_Method()

{

//...

}

//調用時

Form2   f2   =   new   Form2()   ;

f2.ShowUpdate   +=   new   DisplayUpdate(Refresh_Method)   ;

f2.Show()   ;

//Form2:

//聲明一個委托

public   delegate   void   DisplayUpdate();

//聲明事件

public   event   DisplayUpdate   ShowUpdate;

//重新整理時,放在需要執行重新整理的事件裡

ShowUpdate();

子窗體:

ShouRu.FrmSrCategoryAdd frmAddCategory = new FrmSrCategoryAdd();
            frmAddCategory.Owner = this;
            frmAddCategory .ShowDialog ();      

父窗體:

ShouRu.FrmSrCategoryAdd frmAddCategory = new FrmSrCategoryAdd();
            frmAddCategory.Owner = this;
            frmAddCategory .ShowDialog ();      

posted on 2013-01-21 11:45  泰山腳下 閱讀( ...) 評論( ...) 編輯 收藏

轉載于:https://www.cnblogs.com/godxiangyu/archive/2013/01/21/2869493.html