第一步:这边呢,为了更简便的模块间的切换,可以先封装一个类名为ModuleChangeEventArgs的类:
///建立一个切换模块的委托
public delegate void ModuleChangerHandler(object sender, ModuleChangeEventArgs e);
public class ModuleChangeEventArgs:EventArgs
{
public ModuleStyle style = ModuleStyle.none;
public object parames = null;
}
public enum ModuleStyle
{
none,
///模块1
DEMO1,
///模块2
DEMO2
}
第二步:在模块DEMO1和DEMO2的Click点击事件中写:
///这里先建立一个调用委托的事件ModuleHandlerEvent;
public event ModuleChangerHandler ModuleHandlerEvent;
private void button1_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
ModuleStyle mStyle = ModuleStyle.none;
switch (btn.Name)
{
case "button1":
mStyle = ModuleStyle.DEMO1;
break;
case "button2":
mStyle = ModuleStyle.DEMO2;
break;
default:
break;
}
if (this.ModuleHandlerEvent != null && mStyle != ModuleStyle.none)
{
ModuleChangeEventArgs args = new ModuleChangeEventArgs();
args.style = mStyle;
this.ModuleHandlerEvent(this,args);
}
}
第三步:开始调用这个模块切换的事件ModuleHandlerEvent,模块在哪里切换,就在哪里调用这个事件。
整体上,就是这样,切换模块就变得简单便捷,清晰明朗了。