700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c#中在一个窗体中触发另一个窗体的事件

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

时间:2019-07-14 21:06:40

相关推荐

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

创建两个窗体,分别为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 实现):

form1代码:

using System;

using System.Collections.Generic;

using ponentModel;

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 ponentModel;

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();

}

}

}

文章来源:/liujiyun123@126/blog/static/445967768295850128/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。