我想在CheckedListBox中禁用多选。我试过了
checkedListBoxWersje.SelectionMode = SelectionMode.One
但我仍然可以检查多个项目。所以我想取消选择上次检查的项目。有可能吗?
答案 0 :(得分:1)
这是有效的代码。
if(e.NewValue.Equals(CheckState.Checked))
for (int i = 0; i < checkedListBox1.Items.Count; ++i)
if (i != e.Index)
checkedListBox1.SetItemChecked(i, false);
答案 1 :(得分:1)
您是否考虑过使用带有RadioButtons的GroupBox?
如果您真的想使用CheckedListBox,请考虑以下内容,一次只能检查一个项目。
namespace CheckListBoxSimple_C_Sharp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
checkedListBox1.ItemCheck += checkedListBox1_ItemCheck;
}
private const int maxNumberOfCheckedItems = 1;
void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
CheckedListBox items = (CheckedListBox)sender;
if (items.CheckedItems.Count > (maxNumberOfCheckedItems - 1))
{
e.NewValue = CheckState.Unchecked;
}
}
private void Form1_Load(object sender, EventArgs e)
{
checkedListBox1.Items.AddRange(new string[] { "John", "Paul", "George", "Ringo" });
checkedListBox1.SetItemChecked(1, false);
checkedListBox1.SetItemChecked(3, false);
}
}
}