确定是否检查选定的CheckListBox项

时间:2014-03-13 05:32:44

标签: c# checklistbox

关于CheckListBox的信息很少,我想知道人们是否还没有使用别的东西。

我正在尝试对MouseUp事件使用条件语句来确定是选中还是取消选中所选的检查列表框项。以下代码不起作用:

if (clBox.SelectedItem == CheckState.Checked)
{
   //Do something
}

如何确定是否选中了所选的CheckListBox项?我必须使用MouseUP事件,因为当添加到列表中时可能会检查某些框时使用ItemCheck事件很麻烦。否则我最终会触发事件。然而,当他们检查盒子而不是检查时,我如何确定某些东西被取消?

编辑:忘记提及这是Windows Forms。

3 个答案:

答案 0 :(得分:3)

您可以检查CheckedItems集合以查找其中是否包含SelectedItem。尝试这样的事情。

private void clBox_MouseUp(object sender, MouseEventArgs e)
{
    if (clBox.CheckedItems.Contains(clBox.SelectedItem))
    {
        MessageBox.Show("Test");
    }
}

答案 1 :(得分:1)

我假设你在这里关注WinForms CheckedListBox(CLB)。我认为对你的问题更好的方法是附加到" ItemCheck" CLB的活动。

  private void AttachEvents()
  {
     // ....
     this.checkedListBox.ItemCheck += CheckedListBoxOnItemCheck;
  }

  private void CheckedListBoxOnItemCheck(object sender, ItemCheckEventArgs itemCheckEventArgs)
  {
     var item = checkedListBox.Items[itemCheckEventArgs.Index];
     System.Diagnostics.Debug.WriteLine("Item in question: " + item);
     System.Diagnostics.Debug.WriteLine("Previous check state: " + itemCheckEventArgs.CurrentValue);
     System.Diagnostics.Debug.WriteLine("New check state: " + itemCheckEventArgs.NewValue);
  }

根据您的应用程序需求,您还应执行以下操作:

this.checkedListBox.CheckOnClick = true;

然后您的CLB将按照大多数用户的预期行事。

此致 亚历

答案 2 :(得分:0)

    <asp:CheckBoxList ID="ck1" runat="server">
    <asp:ListItem Text ="1" Value ="1"></asp:ListItem>
    <asp:ListItem Text ="2" Value ="2"></asp:ListItem>
    <asp:ListItem Text ="3" Value ="3"></asp:ListItem>
    <asp:ListItem Text ="4" Value ="4"></asp:ListItem>
    <asp:ListItem Text ="5" Value ="5"></asp:ListItem>
    </asp:CheckBoxList>

这是你的检查表..现在问你的问题..

if (chk1.selectedvalue=="1")
{
}
elseif (chk1.selectedvalue=="2")
{
}
elseif (chk1.selectedvalue=="3") 
{
}
elseif (chk1.selectedvalue=="4")
{
}

现在您可以查看是否选中了复选框