本文實例講述了C#實現winform用子窗體刷新父窗體及子窗體改變父窗體控件值的方法。分享給大家供大家參考。具體如下:
第一種方法:
用委托,Form2和Form3是同一組
Form2
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace TestMouseMove {   public delegate void SetVisiableHandler();   public partial class Form2 : Form   {     public Form2()     {       InitializeComponent();     }     private void button1_Click(object sender, EventArgs e)     {       Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));       frm.Show();     }     private void SetVisiable()     {       SetVisiable(this.label1, !this.label1.Visible);     }     private void SetVisiable(Control control, bool visiable)     {       if (this.Controls.Contains(control))       {         control.Visible = visiable;       }     }   } } Form3
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace TestMouseMove {   public partial class Form3 : Form   {     private SetVisiableHandler m_setVisible;     public Form3(SetVisiableHandler setvisible)     {       InitializeComponent();       this.m_setVisible = setvisible;     }     private void btnVisible_Click(object sender, EventArgs e)     {       if (this.m_setVisible != null)       {         this.m_setVisible();       }     }   } } 第二種方法:
用變量,Form4和Form5是同一組
Form4
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace TestMouseMove {   public partial class Form4 : Form   {     public Form4()     {       InitializeComponent();     }     #region 子窗口刷新父窗口的值     private string strLabel1 = "";     public string StrLabel1     {       get       {         return strLabel1;       }       set       {         strLabel1 = value;         this.label1.Text = strLabel1;       }     }     #endregion     private void button1_Click(object sender, EventArgs e)     {       Form5 form5 = new Form5(this);//這里注意傳個this       form5.Show();     }   } } Form5
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace TestMouseMove {   public partial class Form5 : Form   {     Form4 form4 = new Form4();     public Form5(Form4 formFrm)//這個構造方法里有參數     {       form4 = formFrm; //這個必須要有       InitializeComponent();     }     private void button1_Click(object sender, EventArgs e)     {       form4.StrLabel1 = this.textBox1.Text;     }   } }希望本文所述對大家的C#程序設計有所幫助。
新聞熱點
疑難解答