首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# WINFORM程序LISTBOX限制选择项目数量解决办法

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

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);

}
}

热点排行