C#有很多值得学习的地方,这里我们主要介绍C#调用事件,包括介绍客户代码先创建事件类型的委托,该委托引用应从事件调用的方法等方面。
C#调用事件
如果没有任何客户将委托与该事件挂钩,该字段将为空;否则该字段引用应在调用该事件时调用的委托。因此,C#调用事件时通常先检查是否为空,然后再C#调用事件。
- public class Form2 : System.Windows.Forms.Form
- {
- ... ...
- public event SelectionChangedEventHandler SelectionChanged;
- ... ...
- private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
- {
- if (SelectionChanged != null)
- {
- SelectionChangedEventArgs E = new SelectionChangedEventArgs(comboBox1.Text);
- SelectionChanged(this, E);
- }
- }
- }
为了开始接收C#调用事件,客户代码先创建事件类型的委托,该委托引用应从事件调用的方法。然后它使用 += 将该委托写到事件可能连接到的其他任何委托上。
- public class Form1 : System.Windows.Forms.Form
- {
- ... ...
- private Form2 m_frm2;
- ... ...
- public Form1()
- {
- ... ...
- m_frm2 = new Form2();
- //与事件挂钩
- m_frm2.SelectionChanged += new SelectionChangedEventHandler(frm2_SelectionChanged);
- }
- ... ...
- private void button1_Click(object sender, System.EventArgs e)
- {
- m_frm2.ShowDialog();
- }
- private void frm2_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- //获取事件传递过来的数据
- textBox1.Text = e.Selection;
- }
- }
【编辑推荐】