读书人

C# WINFORM程序LISTBOX限制选择项目数

发布时间: 2012-09-29 10:30:01 作者: rapoo

C# WINFORM程序LISTBOX限制选择项目数量
请问一下,当LISTBOX的属性被设置为多选模式后,如何能限制它的选择项目数量呢?

比如LISTBOX有20个项目,我要限制它最多只能选择4个项目,之后就不能再选择其它的项目了,除非取消一个之前的

选择,才能再次选择。

LISTBOX的SELECTDINDEX属性只能获取到当前最小INDEX的选中项ID,也就是说,我选择第3个项目,它是值为3,选择
第10个项目,它的值为3,选择第11个项目,它的值为3; 郁闷。。。。。。

其它像SELECTDVALUE、SELECTITEM 情况与SELECTINDEX类似。。。。

如果用两个LISTBOX的话,就可以实现了,双击LISTBOX1的ITEM,然后加到LISTBOX2里面这个时候是可以控制
LISTBOX2的项目数量的,但这样与用户要求的操作上就不一样了。。。。

请大家帮帮忙啦,实在是找不到办法了。


谢谢啦

[解决办法]

C# code
 选中第五个时,自动取消      private void listBox1_Click(object sender, EventArgs e)        {            if (listBox1.SelectedItems.Count >4)            {                for (int i = 0; i < listBox1.SelectedItems.Count; i++)                {                    if (listBox1.SelectedItem != listBox1.SelectedItems[i])                    {                     listBox1.SetSelected(listBox1.SelectedIndex,false);                    return;                    }                }            }        }
[解决办法]
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedItems.Count > 4)
{
for (int i = 0; i < listBox1.SelectedItems.Count; i++)
{
if (listBox1.SelectedItem != listBox1.SelectedItems[i])
{
listBox1.SetSelected(listBox1.SelectedIndex, false);
return;
}
}
}
}
[解决办法]
还没有弄好吗?你可以这样子滴:
void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedItems.Count > 4)
{
this.listBox1.SelectedItems.Remove(this.listBox1.SelectedItem);

}
}

读书人网 >C#

热点推荐