MultiSelect ListBox选择和取消选择事件

时间:2015-09-02 08:33:04

标签: c# winforms events listbox

我在winforms应用程序中有一个ListBox,现在业务逻辑要求我在列表框中的项目被选中时触发一个函数,如果取消选择列表框中的项目,则触发另一个函数。

但是我看到它的方式,VS中列出的事件都没有给予执行权力。我确实看到像

这样的事件
SelectedIndexChanged(object sender, EventArgs e)

SelectedValueChanged(object sender, EventArgs e)

但是如果ListBox的选择发生变化,这两个事件都会触发。但是它没有指定是否选择或取消选择了引发事件的项目。

对此的任何建议都会非常有用。

我甚至在MSDN上找到以下链接

https://msdn.microsoft.com/en-us/library/system.windows.controls.listboxitem.unselected%28v=vs.110%29.aspx

但我不确定如何在这种情况下应用同样的方法。

1 个答案:

答案 0 :(得分:0)

发布繁琐的解决方案。将来可能会帮助some1复制粘贴。

public static int ListCount;

        private void listBoxPackService_SelectedIndexChanged(object sender, EventArgs e)
        {
            int CurrCount;

            ListBox.SelectedObjectCollection col = listBoxPackService.SelectedItems;
            CurrCount = col.Count;

            if (CurrCount > ListCount)
            {
                //Item Selected

            }
            else
            {
                //Item DeSelected

               if(CurrCount == 0)
               {
                  //All Items Were Deselected
               }

            }

            ListCount = CurrCount;

        }

加载ListBox

ListCount = 0

根据您的要求重命名控件。

我仍然愿意接受更好的解决方案:)