繁体   English   中英

从checklistbox checkitems列表中获取字符串值

[英]Getting string value from checklistbox checkeditems list

我正在尝试设置验证,如果用户检查了某个值,则在保存数据之前,还必须检查同一页面上但在另一个复选框列表中的另一个值。

我正在尝试以这种方式设置嵌套的foreach,其中我的代码经历一个循环,如果选择了值1,则它会使用foreach检查value2,如果未选择该值,则抛出错误消息。

这看起来会起作用,但是itemChecked.tostring()没有以这种方式设置。 我在这做错了什么? (注意字符串测试就在我的测试阶段)

foreach (object itemChecked in clst1.CheckedItems)
{
   string test = itemChecked.ToString();
   if (test == "value1")
   {
      foreach (object subItemChecked in clst2.CheckedItems)
      {
         if (subItemChecked.ToString() != "value2")
         {
            MessageBox.Show("if value 1 is selected value 2 must be selected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return false;
         }
      }
   } 
}

尝试这个:

if(clst1.CheckedItems.Cast<object>()
                     .Any(x=>object.Equals(x.ToString(),"value1"))&&
   !clst2.CheckedItems.Cast<object>()
                     .Any(x=>object.Equals(x.ToString(),"value2"))){ 
   MessageBox.Show("if value 1 is selected value 2 must be selected", 
                    "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

请注意,如果项目的文本是您的value ,则仍然不清楚checkedlistbox中项目的基础数据类型。 代码没问题。 否则你必须提供更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM