ListViewItem itemselectionchangeevent触发4次[e].选择触发两次]导致Win32异



我使用一个按钮和一个列表视图来显示选项的列表给用户。选择是通过鼠标点击完成的,listview从。controls数组中移除它自己+取消注册eventlistener并在屏幕上加载一个新的listview else。

我的问题是两个listviews触发e.s selected两次:

' private void _lvKids_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
    {
        if (e.IsSelected)//fires twice per click
        {
            HideKidsList();//--REMOVE CURRENT LISTVIEW
            ValidateUser();//CREATE NEW LISTVIEW
        }`

如果再次单击该按钮以重新启动进程,则会导致win32异常。经过大量的研究,这个异常通常是导致内存泄漏的原因。所以我认为是内存泄漏?

当我第一次开始时,使用列表框,它工作得很好。我希望能够使用它们,但我的表单有一个图形的背景和列表框没有。Listview。

我没有人可以求助,所以如果你能提供任何帮助,我将不胜感激。

谢谢;山姆

如果其他人有相同的问题,则更新。选择列表视图项会将其从控件数组中移除。删除listview还会导致所选项被取消选中,因此需要调用4个处理程序。

最新更新