首页 > 编程 > C# > 正文

C#实现winform用子窗体刷新父窗体及子窗体改变父窗体控件值的方法

2020-01-24 01:35:39
字体:
来源:转载
供稿:网友

本文实例讲述了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#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表