验证至少1个已检查项目的多个已检查列表框

时间:2014-08-03 15:13:10

标签: c# .net winforms visual-studio-2010

我的Windows窗体上有18个已检查的列表框,我想确保用户检查至少一个项目。

if (checkedListBox1.CheckedIndices.Count < 0)
{
    Messagebox.Show("check atleast one item");
}
........
if (checkedListBox18.CheckedIndices.Count < 0)
{
    Messagebox.Show("check atleast one item");
}

我想知道最简单的方法是什么,而不是为所有18个选中的列表框写下多个if。

1 个答案:

答案 0 :(得分:1)

如果您只想显示一次消息框,请尝试以下操作:

CheckedListBox[] controls = new[]{control1, control2,...};

if (controls.Any(x=> x.CheckedIndices.Count <= 0))
{
    Messagebox.Show("check atleast one item");
}

否则请尝试以下方法(虽然对我来说没有意义)

foreach(var control in controls)
{
    if(control.CheckedIndices.Count <= 0)
    {
        Messagebox.Show("check atleast one item");
    }
}

还要考虑向用户提供有关选择内容的一些提示。对于你所说的一切&#34;检查至少一个项目&#34;,用户如何知道他错过了哪一个?