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


    关键字: 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. }  
  • 相关阅读:
    原型模板分享——国外高阶版“大众点评”TripAdvisor
    插画手绘入门教程
    十大用户体验设计失败案例,你知道吗?
    用摹客,轻松管理设计规范!
    摹客“独门绝技”之评论审阅篇
    政务管理系统原型模板分享
    产品经理如何做需求分析?
    python基础知socket编程
    异常处理
    元类,__call__方法和单例模式
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/2004107.html
Copyright © 2020-2023  润新知