如何让一个按钮对应多个处理情况?
各位高人:
菜鸟一枚,请问如下问题:
工具栏上有一个确定按钮,在不同的子窗口下,点击“确定”按钮实现不同的处理。即:同一个确定按钮如何处理,在不同的子窗口界面下的情况。举例如:
如果当前激活子窗口为“查询工单”,我点击确定,就调用相应的函数查询工单;若当前激活子窗口为“查询客户”,就去查客户。
如果用类似if。。else的语句似乎能处理,总觉不太好,是否有更好的处理模式?
请高人出手!
------解决方案--------------------1.写一个类继承Form类,如BaseChildForm,其中有个方法, 如ButtonClick
2.每个子窗体继承BaseChildForm,重写ButtonClick方法,内容为“确定"按钮点击事件内容
3.在父窗体中的”确定“按钮事件中写
baseChildForm.ButtonClick();//baseChildForm为子窗体类对象
------解决方案--------------------楼上的方法蛮好的,类似于依赖注入(DI),还有一种方法就是使用委托(delegate),我就针对委托写个例子吧,比如:
我当前菜单是:
Menu currentMenu = Menu.Menu1;
在不使用委托的时候你需要写if else或者switch语句:
static void TestWithoutDelegate(Menu menu)
{
switch (menu)
{
case Menu.Menu1:
Console.WriteLine("菜单1");
break;
case Menu.Menu2:
Console.WriteLine("菜单2");
break;
case Menu.Menu3:
Console.WriteLine("菜单3");
break;
default:
break;
}
}
然后调用之:
TestWithoutDelegate(currentMenu);
如果使用委托,那么你就需要多写几个方法,类似于:
static void Menu1()
{
Console.WriteLine("菜单1");
}
static void Menu2()
{
Console.WriteLine("菜单2");