c# 类和自定义控件的自定义事件
时间:2011-04-18 来源:Crazy Coder
以进度1-100为例
创建类 Press
namespace WindowsFormsApplication1 { class PressValue : EventArgs { public int value { set; get; } } class svs { public delegate void UserDelegate(object sender, PressValue pValue);//建立事件委托 public event UserDelegate Ons;//定义事件 public virtual void OnUserDelegate(PressValue s)//建立事件 { Ons(null, s);//调用委托 } public void okgo()//测试方法 { for (int i = 0; i <= 100; i++) { Thread.Sleep(50); PressValue e = new PressValue(); e.i = i; OnUserDelegate(e);//触发事件 } } } }
调用类
private void Form1_Load(object sender, EventArgs e) { Thread t = new Thread(new ThreadStart(s)); t.IsBackground = true; t.Start(); } void s() { svs s = new svs();//实例化类 s.Ons += new svs.UserDelegate(s_Ons);//建立事件函数 s.okgo();//调用类方法 } void s_Ons(object sender, PressValue s) { this.Invoke(new MethodInvoker(delegate() { this.progressBar1.Value = s.value; this.Text = s.value.ToString(); }));//委托窗体更新progressBar和Text }
注:自定义控件创建自定义事件的方式同上
相关阅读 更多 +