这是创建自定义事件并引发它们的简便方法。您将在抛出的类中创建一个委托和一个事件。然后从代码的另一部分订阅该事件。您已经有一个自定义事件参数类,因此可以在此基础上构建其他事件参数类。注意:我尚未编译此代码。
public partial class Form1 : Form{ private TestClass _testClass; public Form1() { InitializeComponent(); _testClass = new TestClass(); _testClass.onUpdateStatus += new TestClass.StatusUpdateHandler(UpdateStatus); } private void UpdateStatus(object sender, ProgressEventArgs e) { SetStatus(e.Status); } private void SetStatus(string status) { label1.Text = status; } private void button1_Click_1(object sender, EventArgs e) { TestClass.Func(); }}public class TestClass{ public delegate void StatusUpdateHandler(object sender, ProgressEventArgs e); public event StatusUpdateHandler OnUpdateStatus; public static void Func() { //time consuming pre UpdateStatus(status); // time consuming pre UpdateStatus(status); } private void UpdateStatus(string status) { // Make sure someone is listening to event if (onUpdateStatus == null) return; ProgressEventArgs args = new ProgressEventArgs(status); onUpdateStatus(this, args); }}public class ProgressEventArgs : EventArgs{ public string Status { get; private set; } public ProgressEventArgs(string status) { Status = status; }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)