C#:复选框

时间:2018-02-25 03:07:56

标签: c# checkbox

我有4个复选框。可以选择一个或所有程序来执行其操作。现在我只有if语句时才选择其中一个。如果我要做所有情况的陈述,我将需要24.有更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Enum来保存选中的值

[Flags]
enum BoxesChecked
{ None = 0, First = 1, Second = 2, Third = 4, Fourth = 8 }

...

var boxesChecked = BoxesChecked.None; 
if (box1.Checked)
    boxesChecked |= BoxesChecked.First;

然后制作关联操作的地图,并根据给定的组合

检索您需要的操作
var actionsMap = new Dictionary<BoxesChecked, Action>
{ 
    { BoxesChecked.First | BoxesChecked.Second, DoSomething },
    { BoxesChecked.Second | BoxesChecked.Fourth, DoSomethingElse },
    ...
};

var action = actionsMap[boxesChecked];