您的位置:首页 > 其它

[写在看《大话设计模式》时的遐想]三个类的委托串联

2010-07-25 21:51 267 查看
狗叫引起猫叫,猫叫引起老鼠叫.

等于老鼠的类:

private void InitEvent()
{
MainTab.OutputClick += new VcutControl.ActiveControl.TabBox8000.OutputClickEventHandler(OpBox_OutputClick);
}

void OpBox_OutputClick(object sender, MCControl.ActiveControl.OutputClickEventArgs args)
{
if (args.State == false)
{
myMCI.MCCommand("SB" + args.Num.ToString());
}
else
{
myMCI.MCCommand("CB" + args.Num.ToString());
}
}


等于猫的类:

/// <summary>
/// 委托事件的添加
/// </summary>
private void InitEvent()
{
//Output
OutputBox.OutputClick += new MCControl.ActiveControl.OutputBox8000.OutputClickEventHandler(TheOpClick);
}
//输出口Click的一个委托
public delegate void OutputClickEventHandler(object sender,MCControl.ActiveControl.OutputClickEventArgs args);
public event OutputClickEventHandler OutputClick;
public void TheOpClick(object sender, MCControl.ActiveControl.OutputClickEventArgs args)
{
if (OutputClick != null)
{
OutputClick(this,args);
}
}


等于狗的类:

private int _clicknum;
public delegate void OutputClickEventHandler(object sender, OutputClickEventArgs args);
public event OutputClickEventHandler OutputClick;
private void WatchOutput_ClickMe(object sender, RoutedEventArgs e)
{

_clicknum = Convert.ToInt32((sender as OutputPanel).Index);
if (OutputClick != null)
{
OutputClickEventArgs ee = new OutputClickEventArgs();
ee.Num = _clicknum;
ee.State = _Output[_clicknum - 1];
OutputClick(this, ee);
}
}


委托声明:

/// <summary>
/// MCControl.ActiveControl空间下
/// </summary>
public class OutputClickEventArgs : EventArgs
{
private int _num;
public int Num
{
get { return _num; }
set { _num = value; }
}

private bool _State;
public bool State
{
get { return _State; }
set { _State = value; }
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: