# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值

第一种方法:

用委托,Form2和Form3是同一组

Form2

C#代码 复制代码
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.ComponentModel;   
  4. using System.Data;   
  5. using System.Drawing;   
  6. using System.Text;   
  7. using System.Windows.Forms;   
  8.   
  9. namespace TestMouseMove   
  10. {   
  11.     public delegate void SetVisiableHandler();   
  12.   
  13.     public partial class Form2 : Form   
  14.     {   
  15.         public Form2()   
  16.         {   
  17.             InitializeComponent();   
  18.         }   
  19.         private void button1_Click(object sender, EventArgs e)   
  20.         {   
  21.             Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));   
  22.             frm.Show();   
  23.         }   
  24.   
  25.         private void SetVisiable()   
  26.         {   
  27.             SetVisiable(this.label1, !this.label1.Visible);   
  28.         }   
  29.   
  30.         private void SetVisiable(Control control, bool visiable)   
  31.         {   
  32.             if (this.Controls.Contains(control))   
  33.             {   
  34.                 control.Visible = visiable;   
  35.             }   
  36.         }   
  37.   
  38.     }   
  39. }  



Form3

C#代码 复制代码
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.ComponentModel;   
  4. using System.Data;   
  5. using System.Drawing;   
  6. using System.Text;   
  7. using System.Windows.Forms;   
  8.   
  9. namespace TestMouseMove   
  10. {   
  11.     public partial class Form3 : Form   
  12.     {   
  13.         private SetVisiableHandler m_setVisible;   
  14.   
  15.         public Form3(SetVisiableHandler setvisible)   
  16.         {   
  17.             InitializeComponent();   
  18.             this.m_setVisible = setvisible;   
  19.         }   
  20.         private void btnVisible_Click(object sender, EventArgs e)   
  21.         {   
  22.             if (this.m_setVisible != null)   
  23.             {   
  24.                 this.m_setVisible();   
  25.             }   
  26.         }   
  27.   
  28.     }   
  29. }  



第二种方法:

用变量,Form4和Form5是同一组

Form4

C#代码 复制代码
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.ComponentModel;   
  4. using System.Data;   
  5. using System.Drawing;   
  6. using System.Text;   
  7. using System.Windows.Forms;   
  8.   
  9. namespace TestMouseMove   
  10. {   
  11.     public partial class Form4 : Form   
  12.     {   
  13.         public Form4()   
  14.         {   
  15.             InitializeComponent();   
  16.         }  
  17.  
  18.         #region 子窗口刷新父窗口的值   
  19.   
  20.         private string strLabel1 = "";   
  21.   
  22.         public string StrLabel1   
  23.         {   
  24.             get  
  25.             {   
  26.                 return strLabel1;   
  27.             }   
  28.             set  
  29.             {   
  30.                 strLabel1 = value;   
  31.                 this.label1.Text = strLabel1;   
  32.             }   
  33.         }  
  34.         #endregion   
  35.   
  36.         private void button1_Click(object sender, EventArgs e)   
  37.         {   
  38.             Form5 form5 = new Form5(this);//这里注意传个this   
  39.             form5.Show();   
  40.         }   
  41.     }   
  42. }  



Form5
http://heisetoufa.javaeye.com/blog/382684

C#代码 复制代码
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.ComponentModel;   
  4. using System.Data;   
  5. using System.Drawing;   
  6. using System.Text;   
  7. using System.Windows.Forms;   
  8.   
  9. namespace TestMouseMove   
  10. {   
  11.     public partial class Form5 : Form   
  12.     {   
  13.         Form4 form4 = new Form4();   
  14.   
  15.         public Form5(Form4 formFrm)//这个构造方法里有参数   
  16.         {   
  17.             form4 = formFrm; //这个必须要有   
  18.             InitializeComponent();   
  19.         }   
  20.   
  21.           
  22.         private void button1_Click(object sender, EventArgs e)   
  23.         {   
  24.             form4.StrLabel1 = this.textBox1.Text;   
  25.         }   
  26.     }   
  27. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值