【问题标题】:C#: Check boxesC#:复选框
【发布时间】:2018-08-04 19:23:07
【问题描述】:

我有 4 个复选框。程序可以选择一个或全部来做它的事情。现在我只有当只选择其中一个时的 if 语句。如果我要为所有情况做 if 语句,我将需要 24。有没有更简单的方法?

【问题讨论】:

  • 可能有更简单的方法。如果您向我们展示您现在拥有的代码,我们或许可以提供帮助。
  • 真正的问题是您是如何获得 4 个复选框的 24 个可能值的?
  • 呵呵,实际上应该是 15...如果必须启用至少一个复选框。
  • 我做了 4 个!这是 24 就是这样
  • 您的问题应该显示一些您尝试过的代码。老实说,这个问题很难理解你想要做什么以及你被困在哪里。如果您正在寻找问题的解决方案,请在问题中提供尽可能多的详细信息。

标签: c# checkbox


【解决方案1】:

您可以使用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];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多