关于CheckListBox的信息很少,我想知道人们是否还没有使用别的东西。
我正在尝试对MouseUp事件使用条件语句来确定是选中还是取消选中所选的检查列表框项。以下代码不起作用:
if (clBox.SelectedItem == CheckState.Checked)
{
//Do something
}
如何确定是否选中了所选的CheckListBox项?我必须使用MouseUP事件,因为当添加到列表中时可能会检查某些框时使用ItemCheck事件很麻烦。否则我最终会触发事件。然而,当他们检查盒子而不是检查时,我如何确定某些东西被取消?
编辑:忘记提及这是Windows Forms。
答案 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")
{
}
现在您可以查看是否选中了复选框