2011-07-07 48 views
0

我正在使用按钮和列表视图向用户显示选项列表。用鼠标点击进行选择,listview从.Controls数组中删除它的自我+取消注册eventlistener,并在屏幕上的任何位置加载一个新的listview。ListViewItem ItemSelectionChangedEvent触发4次[e.Selected触发两次]导致Win32异常未处理

我的问题是这两个列表视图,触发器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呢。

我没有人转向任何东西,你可以提供将不胜感激。

谢谢; 山姆

回答

0

更新,如果任何人有同样的问题。选择要从Controls数组中删除的列表视图项。删除列表视图也会导致选定的项目被取消选择,从而对处理程序进行4次调用。