powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ListView гадит событиями
6 сообщений из 6, страница 1 из 1
ListView гадит событиями
    #38659117
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Листвью заполняется в цикле при создании формы и подписан на событие:
Код: vbnet
1.
2.
3.
    Private Sub lvPrices_ItemChecked(sender As Object, e As ItemCheckedEventArgs) Handles lvPrices.ItemChecked
        ....
    End Sub

Проблема в том, что при заполнении нужным айтемам выставляется свойство Checked, а ItemChecked начинает лупить по добавленным айтемам не во время прохода цикла, а после отображения листвью. То есть флажок перед циклом ставить без толку.

Как побороть?
...
Рейтинг: 0 / 0
ListView гадит событиями
    #38662395
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyКак побороть?
после каждой итеррации
Код: c#
1.
Application.DoEvents();
...
Рейтинг: 0 / 0
ListView гадит событиями
    #38662538
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
Имхо, наверное подписаться на событие после заполнения состояния вью листа
...
Рейтинг: 0 / 0
ListView гадит событиями
    #38662812
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,

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

Где-то в степиAntonariy,
Имхо, наверное подписаться на событие после заполнения состояния вью листатакое событие есть?
я подписался в VisibleChanged, но оно срабатывает два раза, так что пришлось еще флажок прикостылить, чтобы не подписаться дважды.
...
Рейтинг: 0 / 0
ListView гадит событиями
    #38662863
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
честно сказать, я не могу понять суть проблемы
я посчитал что
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
  void LoadSubscribe(IEnumerable<object> enumerator, ItemCheckedEventHandler action)
        {
            listView1.Visible = false;
            listView1.CheckBoxes = true;
            //if (action != null)//1  ВАРИАНТ КАК У ВАС
            //{
            //    listView1.ItemChecked += action;
            //}
            foreach (var v in from object v in (IEnumerable)enumerator let item = new ListViewItem(v.ToString()) { Checked = true } select v)
                listView1.Items.Add(new ListViewItem(v.ToString()) { Checked = true });
            if (action != null)// ПРЕДЛАГАЮ Я
            {
                listView1.ItemChecked += action;
            }
            listView1.Visible = true;
        }

  LoadSubscribe(Enumerable.Range(1,20).Cast<object>(),(o, args) => { MessageBox.Show("sd"); }); // вызов


я не могу понять, откуда валятся события при Visible , ведь можно подписаться в самом конце, после объявления Visible
...
Рейтинг: 0 / 0
ListView гадит событиями
    #38663050
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пробовал оба варианта, события приходят. они не приходят только если подписаться после отображения listview.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ListView гадит событиями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]