【问题标题】:Control Multiple Checkbox Arrays控制多个复选框数组
【发布时间】:2016-11-22 20:18:49
【问题描述】:

我有两个包含 16 个复选框的数组,我希望在 for 语句运行时逐步检查它们。它看起来像这样:

public void Cycle()
{
   if (host == false)
        {
            CheckBox[] cboxes = relayRow.CheckBoxes;
        }                
        else if (host == true)
        {
            CheckBox[] cboxes = relayRow2.CheckBoxes;
        }
   for (int i = 0; i < 16; i++)
        {            
            cboxes[i].Checked = true;
        }
}

我在 for 语句中的“cboxes”下看到一条红线,表示“当前上下文中不存在名称 'cboxes'。” 如果我一次只使用一个,它可以完美地工作,所以我的数组应该没有问题。一次工作一个如下:

  public void Cycle()
    {            
        CheckBox[] cboxes = relayRow.CheckBoxes;

        for (int i = 0; i < 16; i++)
        {
            cboxes[i].Checked = true;
        }
    }

我的布尔“主机”也应该没有问题,因为我已经在其他地方使用过它并且它按预期工作。我只是想在要检查的 16 个数组之间切换。提前致谢。

【问题讨论】:

    标签: c# arrays checkbox


    【解决方案1】:

    对 D Stanley 的回答略有不同,不确定您是否需要使用数组和 for 循环,这会迫使您硬编码复选框的数量,但这也应该有效:

      public void Cycle()
        {
            var cboxes = host ? relayRow2.CheckBoxes : relayRow.CheckBoxes;
            cboxes = (from checkBox in cboxes.ToList()
                select new CheckBox { Checked = true}).ToArray();
        }
    

    附:我没有足够的声望点来评论,否则我只会评论你的答案 D Stanley 并上调(对不起!)

    【讨论】:

      【解决方案2】:

      您只需要在if 语句之外声明变量:

      public void Cycle()
      {
          CheckBox[] cboxes = null;
          if (host == false)
          {
              cboxes = relayRow.CheckBoxes;
          }                
          else if (host == true)
          {
              cboxes = relayRow2.CheckBoxes;
          }
          for (int i = 0; i < 16; i++)
          {            
              cboxes[i].Checked = true;
          }
      }
      

      或者只是

      public void Cycle()
      {
          CheckBox[] cboxes = host ? relayRow2.CheckBoxes : relayRow.CheckBoxes;
          for (int i = 0; i < 16; i++)
          {            
               cboxes[i].Checked = true;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2015-09-13
        • 2015-07-08
        • 2012-11-12
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        • 1970-01-01
        • 2018-03-20
        • 2016-03-22
        相关资源
        最近更新 更多