您的位置:首页 > 编程语言 > C#

c# 类和自定义控件的自定义事件

2011-04-18 23:54 369 查看
以进度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
}


注:自定义控件创建自定义事件的方式同上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: