所谓事件,不就是某些属性改变的时候触发一个方法么
而属性,就是get;set;不仅仅是个Public变量,里面是带方法的
而属性,就是get;set;不仅仅是个Public变量,里面是带方法的
解决方案 »
- 急!添加方法的困难!C#
- EventLog.WriteEntry 的奇怪问题
- CustomValidator问题:
- VS2012 dotfuscator.exe用不了,提示错误
- 一个关于DataGridView显示的具体问题
- 求救~~~~~~~~~~dataGridView的问题
- 跪求SQL 统计语句
- 询问哪里有C#开发ASP.NETWeb应用程序的入门教材,急!
- c#数据库编程方面的问题,请教微软工程师们和大虾
- Winform怎么把Bitmap旋转自定义的角度?
- winform控件当中的"Pointer"组件,好像根本就不能添加到窗口里面啊
- WindowsForms中的ComboBox数据绑定
private object _handlerKey = new object(); /// <summary>
/// 选中项改变事件(需要启用AutoPostBack)
/// </summary>
public event EventHandler SelectedIndexChanged
{
add
{
Events.AddHandler(_handlerKey, value);
}
remove
{
Events.RemoveHandler(_handlerKey, value);
}
} protected virtual void OnSelectedIndexChanged(EventArgs e)
{
EventHandler handler = Events[_handlerKey] as EventHandler; if (handler != null)
{
handler(this, e);
}
} //在需要触发的代码段里去执行
OnSelectedIndexChanged(EventArgs.Empty);//触发SelectedIndexChanged
{
static void Main(string[] args)
{
Observer ob = new Observer(new Publisher());
Console.ReadKey();
}
} public class Observer
{
private Publisher pub; public Observer(Publisher pub)
{
this.pub = pub;
pub.SampleEvent += pub_SampleEvent;
} void pub_SampleEvent(object sender, SampleEventArgs e)
{
Console.WriteLine("The latest message is " + e.Message);
}
} public class Publisher
{
private Timer timer;
public Publisher()
{
timer = new Timer((e) => {
RaiseSampleEvent();
}, new AutoResetEvent(false),1,1000);
}
// Declare the delegate (if using non-generic pattern).
public delegate void SampleEventHandler(object sender, SampleEventArgs e); // Declare the event.
public event SampleEventHandler SampleEvent; // Wrap the event in a protected virtual method
// to enable derived classes to raise the event.
protected virtual void RaiseSampleEvent()
{
// Raise the event by using the () operator.
if (SampleEvent != null)
SampleEvent(this, new SampleEventArgs(DateTime.Now.ToString()));
}
} public class SampleEventArgs : EventArgs
{
public string Message;
public SampleEventArgs(string message)
{
Message = message;
}
}
实例化event者,并不知道,也不关心这个event什么时候会被触发,
他只需要知道,event如果被触发了,他该干什么(绑上哪些委托)