none
请教高手,关于遍历所有CheckBox,检查答案是否填写。 RRS feed

  • 问题

  • 如题,有7个CHECKBOX,遍历所有,如果有一个或多个被选中,往下继续执行代码,如果一个都没选,提示,请选择答案。求实例,谢谢。

    C#初学者!~~~

    2012年5月9日 22:36

答案

  • 我初略下一下,希望对你有帮助!

    int count=0;
    
    for(int i;i<7;i++)
    
    {
    
        if(checkboxlist[i].ischeck)
    
    {
    
    count++;
    
    continue;
    
    }
    
    }
    
    
    
    if(count==0)
    
    {
    
    messagebox.show("请选择答案");
    
    }


    • 已标记为答案 呆oO 2012年5月10日 12:27
    2012年5月10日 1:03
    版主
  • 把7个checkBox 放在一个groupBox 里面,然后尝试一下下面的代码:

    private void button1_Click(object sender, EventArgs e)
            {
                int i = 0;
                foreach (var ck in this.groupBox1.Controls)
                {
                    if (ck is CheckBox)
                    {
                        if (((CheckBox)ck).Checked)
                        {
                            i++;
                        }
                    }
                }
                if (i == 0)
                {
                    MessageBox.Show("please check one at least");
                }
            }


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 呆oO 2012年5月10日 12:22
    2012年5月10日 2:27
    版主

全部回复

  • 我初略下一下,希望对你有帮助!

    int count=0;
    
    for(int i;i<7;i++)
    
    {
    
        if(checkboxlist[i].ischeck)
    
    {
    
    count++;
    
    continue;
    
    }
    
    }
    
    
    
    if(count==0)
    
    {
    
    messagebox.show("请选择答案");
    
    }


    • 已标记为答案 呆oO 2012年5月10日 12:27
    2012年5月10日 1:03
    版主
  • 把7个checkBox 放在一个groupBox 里面,然后尝试一下下面的代码:

    private void button1_Click(object sender, EventArgs e)
            {
                int i = 0;
                foreach (var ck in this.groupBox1.Controls)
                {
                    if (ck is CheckBox)
                    {
                        if (((CheckBox)ck).Checked)
                        {
                            i++;
                        }
                    }
                }
                if (i == 0)
                {
                    MessageBox.Show("please check one at least");
                }
            }


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 呆oO 2012年5月10日 12:22
    2012年5月10日 2:27
    版主
  • boo fay=false;
    foreach(var item in checkboxlist)
    {
     if(item.isCheck)
    {
     fay=true;
    break;
    }
    }
    if(!fay)
    {
    // 未选择
    }

    此代码比较高效 希望对你有帮助

    爱吃西瓜的小强[mcpd]

    2012年5月10日 8:41
  • 我是个新手,个人觉得还是这个比较好用点。


    C#初学者!~~~

    2012年5月10日 12:23