【问题标题】:Is there a better way to run through radio buttons in an if statement?有没有更好的方法来运行 if 语句中的单选按钮?
【发布时间】:2020-03-19 09:03:50
【问题描述】:

我是 C# 新手。我想找到一种更快的方法来运行大量单选按钮,看看它们是否被选中。这是我现在的代码:

if(radibutton1.checked == true && radiobutton2.checked== true) {
   //Do something
}

有没有更好的方法来做到这一点,因为我所有的单选按钮都会有很多 if 语句,我担心我现在这样做的方式会减慢我的应用程序。

【问题讨论】:

  • 你能说明它是 WinForms 还是 WPF?
  • WinForms 对不起 ....
  • 您可以信赖RadioButtonList。它使 UI 和代码更简洁。摆脱这些 if 语句也完全取决于您尝试对所选值执行的操作。您可以在没有任何 if 语句的情况下将这些值传递给函数。
  • @RezaAghaei 同意,我浏览得太快了! (以为是复选框)。重新打开:)
  • @MaeveMaeveov 如果不知道您将如何处理这些单选按钮,很难分享一些有用的想法。但是总的来说,我认为问题属于codereview.stackexchange.com

标签: c# winforms if-statement


【解决方案1】:

如果您有超过 4 个单选按钮(在一个组中),我认为最好使用组合框或列表。

否则出于维护目的,最好以某种方式使用循环。获取控件的方法有很多。

  • 您可以初始化一个包含组中所有控件的数组。比如:

    var group1radios = new RadioButton[] { radio1, radio2, radio 3, radio4 };
    
  • 您可以枚举表单上的控件,并以某种方式检测该控件是否是属于您的组的单选按钮(按位置、组框、标签、名称、连续单选...)。

  • 您可以创建一个仅包含单选按钮的面板。

【讨论】:

  • 完美,我用 for 创建循环并将某些内容转换为字符串,效果很好
猜你喜欢
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
相关资源
最近更新 更多