zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    httpClient-3.1学习笔记
    HTTP Header 详解
    Java:对象的强、软、弱和虚引用
    Spring @ResponseBody 返回乱码 的优雅解决办法
    Spring MVC 返回类型为字符串时, 返回中文变成"?"处理
    GroupVarint
    Format
    DynamicConverter
    Thread pools & Executors
    Futures
  • 原文地址:https://www.cnblogs.com/yja9010/p/3178822.html
Copyright © 2011-2022 走看看