试图在循环中省略一个复选框控件

本文关键字:一个 复选框 控件 循环 中省 | 更新日期: 2023-09-27 18:13:20

我有一个实用程序类,它有一个静态方法,该方法将控件对象作为参数。使用类/方法的原因是为下一款新游戏清除/重置应用程序的形式。

我对所有不同的控件做了很多事情对于复选框控件,我去掉了复选标记。有一个复选框是我不想碰的(如果是,请保持选中状态)。我让它工作,不知怎么的,我不记得了,它可能很简单。

当前代码:

// Called when a new game is started.  Clears all checkmarks in all checkbox controls
if (control is CheckBox)
{
   CheckBox checkBox = (CheckBox)control;
   checkBox.Checked = false;
}

测试代码:

// Called when a new game is started.  Clears all checkmarks in all checkbox controls
if (control is CheckBox)
{
   if (control is form.checkBoxWarning)
   {
      continue;
   }
   CheckBox checkBox = (CheckBox)control;
   checkBox.Checked = false;
}

'form'被传递给这个静态类:

public static void ResetAllControls(Control form)

,但我仍然不知道如何把控制到上下文中。我正在尝试的控件名称是checkBoxWarning

试图在循环中省略一个复选框控件

您可能想要的是:

if (control is CheckBox)
{
    if (control.Name == "checkBoxWarning")
    {
         continue;
    }
    CheckBox checkBox = (CheckBox)control;
    checkBox.Checked = false;
}     
但是,更好的方法是使用Tag属性。在任何你不想触碰的复选框上设置它为false,然后使用下面的代码:
if (control is CheckBox)
{
    if (control.Tag != null && ((bool)control.Tag) == false)
    {
        continue;
    }
    CheckBox checkBox = (CheckBox)control;
    checkBox.Checked = false;
}

这样做将允许您使多个复选框可以不受影响,而不必再次触摸您的类代码