C# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
第一种方法:
用委托,Form2和Form3是同一组
Form2
C#代码 
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;    
            }    
        }    
   
    }    
}   
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
C#代码 
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();    
            }    
        }    
   
    }    
}   
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
C#代码 
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 
http://heisetoufa.javaeye.com/blog/382684
C#代码 
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;    
        }    
    }    
}   
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaofan_sap/archive/2010/05/07/5567874.aspx
来源:http://www.cnblogs.com/yja9010
更新: http://jumpbyte.cn
声明:本博客原创文字只代表本人的观点或结论,于网站他人无关,非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号