CheckedListBoxCheck/Uncheck检测
CheckedListBox Check/Uncheck detection
我在 Winforms 应用程序中有一个 CheckedListBox,其中包含月份作为项目(如一月、二月、三月等)我正在尝试实现这样的功能,即当任何项目被选中时,应该弹出一条消息说它已经检查。而当取消选中同一项目时,消息应说明它已取消选中。我已经尝试了下面的代码,但它没有按预期工作。目前,选中或取消选中任何项目时,都会显示同一组消息。
CheckOnClick=true
private void clbMonthly_SelectedIndexChanged(object sender, EventArgs e)
{
if (clbMonthly.GetItemChecked(1) == true)
{
MessageBox.Show("Item 1 checked");
}
else
{
MessageBox.Show("Item 1 unchecked");
}
//........
}
希望您能理解我的 question.Please 建议正确的 C# 代码。提前致谢
尝试针对 ItemCheck 事件编码:
Occurs when the checked state of an item changes.
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
string itemText = checkedListBox1.Items[e.Index].ToString();
if (e.NewValue == CheckState.Checked)
{
MessageBox.Show(itemText + " checked");
}
else
{
MessageBox.Show(itemText + " unchecked");
}
}
这比 SelectedIndexChanged
好,因为每当用户选择一个新项目时都会触发这个,而不是一个项目得到 checked/unchecked。
我在 Winforms 应用程序中有一个 CheckedListBox,其中包含月份作为项目(如一月、二月、三月等)我正在尝试实现这样的功能,即当任何项目被选中时,应该弹出一条消息说它已经检查。而当取消选中同一项目时,消息应说明它已取消选中。我已经尝试了下面的代码,但它没有按预期工作。目前,选中或取消选中任何项目时,都会显示同一组消息。
CheckOnClick=true
private void clbMonthly_SelectedIndexChanged(object sender, EventArgs e)
{
if (clbMonthly.GetItemChecked(1) == true)
{
MessageBox.Show("Item 1 checked");
}
else
{
MessageBox.Show("Item 1 unchecked");
}
//........
}
希望您能理解我的 question.Please 建议正确的 C# 代码。提前致谢
尝试针对 ItemCheck 事件编码:
Occurs when the checked state of an item changes.
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
string itemText = checkedListBox1.Items[e.Index].ToString();
if (e.NewValue == CheckState.Checked)
{
MessageBox.Show(itemText + " checked");
}
else
{
MessageBox.Show(itemText + " unchecked");
}
}
这比 SelectedIndexChanged
好,因为每当用户选择一个新项目时都会触发这个,而不是一个项目得到 checked/unchecked。