多选列表框选择和取消选择事件

本文关键字:选择 事件 取消 列表 | 更新日期: 2023-09-27 18:10:59

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

但是在我看来,在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

但我不知道如何在这种情况下应用相同的

多选列表框选择和取消选择事件

张贴乏味的解决方案。可能对将来复制粘贴有帮助。

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

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

我仍然开放一个更好的解决方案:)