c# 生成事件

代码
 
   
public partial class Form1 : Form
{
public delegate void ActionEventHandler( object sender, ActionCancelEventArgs e);
       public static event ActionEventHandler Action;

public Form1()
{

InitializeComponent();
button2.Click
+= new EventHandler(button2_Click);
}

void button2_Click( object sender, EventArgs e)
{
ActionCancelEventArgs cancelEvent
= new ActionCancelEventArgs();
BusEntity busEntity
= new BusEntity();
OnAction(
this , cancelEvent);
if (cancelEvent.Cancel)
label1.Text
= cancelEvent.Message;
else
label1.Text
= busEntity.TimeString;
}

protected void OnAction( object sender, ActionCancelEventArgs e)
{
if (Action != null ) // 捕获空引用错误
Action(sender, e);
}

}

#region ActionCancelEventArgs 类
public class ActionCancelEventArgs:CancelEventArgs
{
string message = String.Empty;
public ActionCancelEventArgs (): base (){}
public ActionCancelEventArgs ( bool cancel): base (cancel){}
public ActionCancelEventArgs ( bool cancel, string message): base (cancel)
{
this .message = message ;
}
public string Message
{
get { return message ;}
set {message = value;}
}

}
#endregion

#region BusEntity 类
public class BusEntity
{
string time = String.Empty;

public BusEntity()
{
Form1.Action
+= new Form1.ActionEventHandler(Form1_Action);
}

private void Form1_Action( object sender, ActionCancelEventArgs e)
{
e.Cancel
= ! DoActions();
if (e.Cancel)
e.Message
= " Wasn't the right time. " ;
}

private bool DoActions()
{
bool retVal = false ;
DateTime tm
= DateTime.Now;

if (tm.Second < 30 )
{
time
= " The time is " + DateTime.Now.ToLongTimeString();
retVal
= true ;
}
else
time
= "" ;

return retVal;
}

public string TimeString
{
get { return time; }
}
}
#endregion

 

 

转载于:https://www.cnblogs.com/jorgen/archive/2010/10/26/1861184.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值