c#中在一个窗体中触发另一个窗体的事件

xiaoxiao2021-02-28  87

创建两个窗体,分别为form1,form2,在form1中添加控件textBox1和button1,创建一个form2的对象Form2 b = null; 在form2中添加button1,定义委托和事件  //定义委托         public delegate void MyDelegate();         //定义事件         public event MyDelegate MyEvent; 给form2中的button1添加消息相应函数并做修改        private void button1_Click(object sender, EventArgs e)         {             if (MyEvent != null)                 MyEvent();//引发事件             this.Close();         } 在form1的代码中添加函数      void b_MyEvent()             {                 this.textBox1.Text += "已单击b窗体按钮\r\n";             } 修改form1的构造函数      public Form1()             {                 InitializeComponent();                 b = new Form2();//实例化b窗体                 b.MyEvent += new Form2.MyDelegate(b_MyEvent);//监听b窗体事件             } 为form1中的button1添加消息响应函数     private void button1_Click(object sender, EventArgs e)             {                 b.ShowDialog();

            } 这样当单击form1中的按钮时会弹出form2,当单击form2中的按钮时,form1中的textbox1会显示“已单击b窗体按钮”。 具体代码如下(vs 2005实现):

form1代码:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;

namespace form1 {

        public partial class Form1 : Form         {             Form2 b = null;

            public Form1()             {                 InitializeComponent();

                b = new Form2();//实例化b窗体                 b.MyEvent += new Form2.MyDelegate(b_MyEvent);//监听b窗体事件             }

            void b_MyEvent()             {                 this.textBox1.Text += "已单击b窗体按钮\r\n";             }

            private void button1_Click(object sender, EventArgs e)             {                 b.ShowDialog();

            } } }

form2代码:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;

namespace form1 {     public partial class Form2 : Form     {         public Form2()         {             InitializeComponent();         }         //定义委托         public delegate void MyDelegate();         //定义事件         public event MyDelegate MyEvent;

        private void button1_Click(object sender, EventArgs e)         {             if (MyEvent != null)                 MyEvent();//引发事件             this.Close();         }

    } }

文章来源:http://blog.163.com/liujiyun123@126/blog/static/4459677620108295850128/

转载请注明原文地址: https://www.6miu.com/read-74067.html

最新回复(0)