我有一个检查列表框控件,我想一次只选择一个项目,我目前使用这个代码来做同样的事情。如何检查checkedlistbox中只有一个项目
private void CLSTVariable_ItemCheck(object sender, ItemCheckEventArgs e)
{
// Local variable
int ListIndex;
CLSTVariable.ItemCheck -= CLSTVariable_ItemCheck;
for (ListIndex = 0;
ListIndex < CLSTVariable.Items.Count;
ListIndex++)
{
// Unchecked all items that is not currently selected
if (CLSTVariable.SelectedIndex != ListIndex)
{
// set item as unchecked
CLSTVariable.SetItemChecked(ListIndex, false);
} // if
else
{
// set selected item as checked
CLSTVariable.SetItemChecked(ListIndex, true);
}
} // for
CLSTVariable.ItemCheck += CLSTVariable_ItemCheck;
}
此代码工作正常。
,但问题是,当我一次又一次地点击所选项目那么所选的项目不应该不加制止,意味着至少一个项目,应始终检查...
你为什么不使用'RadioButtonList'如果你只想要一个项目选择?使用锯锯和螺丝刀来驱动螺丝...... – Bazzz 2011-03-10 08:10:26
Bazz的确如此。但我不得不说,我经常会找到这种方式来做一个标记一复选框的解决方案。任何有充分理由的人,请将其标记给我! (除了化妆品,这是我可以采取的原因)。 – Independent 2011-03-10 08:14:21
我同意Bazzz。工作错误的工具。 UX的一个关键方面是用户非常熟悉某些UI提示。多年看到复选框意味着他们希望能够检查多个。如果强制执行单个复选框,对用户来说这是一个非常刺激的体验。 – 2011-03-10 08:17:27