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();   
        }   
    }   
}  

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;   
        }   
    }   
}  

 

 

转载于:https://www.cnblogs.com/arongbest/archive/2009/12/25/1632158.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值