C# 委托和事件 实现窗体间的通信

Posted 学之道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 委托和事件 实现窗体间的通信相关的知识,希望对你有一定的参考价值。

 

例子 : 点击form1上的按钮打开form2窗口,在form2窗体中的文本框中输入一个值后,在点击form2窗体中按钮,在form2中的文本框中输入的值也会在form1中的文本框中出现。

 

form1:

        public partial class Form1 : Form

       {
             public Form1()
            {
               InitializeComponent();
            }

            private void textBox1_TextChanged(object sender, EventArgs e)
           {

           }

            private void button1_Click(object sender, EventArgs e)
           {
               Form2 frm = new Form2();
               frm.Text_event += new Form2.Text_delegate(getData);
               frm.ShowDialog();
            }

            public void getData()
            {
                textBox1.Text = Form2.x;
             }
       }

form2:

        public partial class Form2 : Form

       {
             public Form2()
            {
               InitializeComponent();
            }

            private void Form2_Load(object sender, EventArgs e)
           {

           }

           public delegate void Text_delegate();
           public event Text_delegate Text_event;
           public static string x;

           public void Tram()
          {   
                x = textBox1.Text;
                if (Text_event != null) Text_event();
           }

           private void textBox1_TextChanged(object sender, EventArgs e)
          {

          }

          private void button1_Click(object sender, EventArgs e)
         {
               if (!String.IsNullOrEmpty(this.textBox1.Text))
                {
                    Tram();
                }
          }
}

以上是关于C# 委托和事件 实现窗体间的通信的主要内容,如果未能解决你的问题,请参考以下文章

C#如何在 Windows 窗体应用程序中使用事件

c# 不同窗体之间传值和调用

C# 窗体间传值(使用委托与自定义事件)

附实例!实现iframe父窗体与子窗体的通信

WPF 委托 事件 B窗体调用A窗体方法

c#如何使用委托 触发另一个窗体的按钮刷新另一窗体