现在的位置: 首页 > 综合 > 正文

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

2012年05月21日 ⁄ 综合 ⁄ 共 4680字 ⁄ 字号 评论关闭

关键字: c# 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. }  
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#代码 复制代码 收藏代码
  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. }  
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#代码 复制代码 收藏代码
  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. }  
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

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


抱歉!评论已关闭.