ListViewItem ItemSelectionChangedEvent触发4次[e.Selected fires两次]导致Win32 Exception Unhandled

时间:2011-07-07 04:06:40

标签: events listview memory click

我正在使用按钮和列表视图来向用户显示选项列表。通过鼠标单击进行选择,listview将从.Controls数组+取消注册eventlistener中删除其自身,并在屏幕上的其他位置加载新的listview。

我的问题是两个列表视图触发e.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确实。

我没有任何人可以转向,所以你能提供的任何东西都会受到赞赏。

感谢; 萨姆

1 个答案:

答案 0 :(得分:0)

如果其他人有同样的问题,请进行更新。选择要从Controls数组中删除的listview项。删除列表视图还会导致取消选择所选项目,从而调用4个处理程序。