public void MakeItOccur(MyCheckInput e) //事件触发 { if (e.position.Equals("她不想上课") == true) { MyEvent(this, e); } }
//第一种触发事件的方法 private void CauseEvent1() { if (timecounter == 6) //计时器到6秒时,触发字定义的事件 { MyCheckInput mycheck = new MyCheckInput("她不想上课", "她一个劲儿地发呆"); //事件参数类实例化 CheckEventOccurDealt mydealt = new CheckEventOccurDealt(); //自定义事件实例化 mydealt.MakeItOccur(mycheck); //调用自定义事件对象的触发方法,参数为事件参数对象。 //注意,这里只是调用了自定义事件对象的触发方法,并没有直接调用【与事件关联的】指代方法 //根据事件的两个参数分别更新窗体的两个字符串域,这两个域的值决定了要不要画图 s1 = mydealt.cause; s2 = mydealt.result; //刷新窗体绘图区域 Invalidate(); } if (timecounter == 12) //计时器到12秒时,停止计时器,并更新两个字符串域【s1,s2】的值为空 { timer1.Stop(); //停止定时器 timecounter = -1; //更新域值 s1 = ""; //更新域值 s2 = ""; //更新域值 Invalidate(); //刷新窗体绘图区域 } }
//第二种触发事件的方法 private void CauseEvent2() { CheckEventOccurDealt mydealt = new CheckEventOccurDealt(); //自定义事件实例化 MyCheckInput mycheck = new MyCheckInput("", ""); //事件参数类实例化; if (timecounter == 6) { mycheck.position = "她不想上课"; mycheck.result = "她一个劲儿地发呆"; } mydealt.MakeItOccur(mycheck); //调用自定义事件对象的触发方法,参数为事件参数对象。 //注意,这里只是调用了自定义事件对象的触发方法,并没有直接调用【与事件关联的】指代方法 //根据事件的两个参数分别更新窗体的两个字符串域,这两个域的值决定了要不要画图 s1 = mydealt.cause; s2 = mydealt.result; Invalidate(); //刷新窗体绘图区域 if (timecounter == 12) { timer1.Stop(); //停止定时器 timecounter = -1; //更新域值 } }
public void EventAdd(object sender, MyCheckInput e) { cause += "!大家有麻烦了v_v"; result += "!大家快逃^-^"; }
public void EventProcess(object sender, MyCheckInput e) { cause = "事件原因为:" + e.position; result = "事件结果为:" + e.result; }