本文實例講述了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#程序設計有所幫助。
新聞熱點
疑難解答