ListViewItem ItemSelectionChangedEvent Выполняется 4 раза [e.Selected fires дважды] приводит к исключению Win32, необработанному - PullRequest
0 голосов
/ 07 июля 2011

Я использую кнопку и просмотр списка, чтобы отобразить список параметров для пользователя.Выбор осуществляется щелчком мыши, просмотр списка удаляет его из массива .Controls + отменяет регистрацию EventListener и загружает новый просмотр списка в другом месте экрана.

Моя проблема в том, что оба триггера просмотра списка 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 делает.

Мне не с кем обратиться, поэтому любая вещь, которую вы можете предложить, будет оценена.

Спасибо;Sam

1 Ответ

0 голосов
/ 13 августа 2011

Обновление, если у кого-то есть такая же проблема.Выбор элемента списка, который необходимо удалить из массива Controls.Удаление списка также приводит к отмене выбора выбранного элемента, что приводит к 4 вызовам обработчика.

...