Как выбор из списка изменил работу события. Это называется Twise

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

Следующее - выбранное измененное событие моего списка:

    Private Sub lv_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lv.SelectedIndexChanged

   If lv.SelectedItems.Count() > 0 Then
     ...
     .
     ResetifNorecordSelectedState(False)
   Else
      ..
    ResetifNorecordSelectedState(True)
   End If

Проблема: каждый раз, когда пользователь меняет выбор записи, элементы управления отключаются и следуют за включенным состоянием. Это делает неудобным дизайн для пользователя.

Может ли кто-нибудь поделиться со мной решением или что я должен изменить здесь, чтобы исправить эту проблему.?

Спасибо

1 ответ

ListView запускает SelectedIndexChanged и когда строки выделены, и когда они отменены. Таким образом, нажатие на новую строку запускает два события: одно для отмены выбора старой строки, другое для выбора новой строки.

В вашем событии SelectedIndexChanged запланируйте запуск другого метода во время простоя, но обязательно запланируйте один из них:

// If we haven't already scheduled an event, schedule it to be triggered
// By using idle time, we will wait until all select events for the same
// user action have finished before triggering the event.
if (!_hasIdleHandler) {
    _hasIdleHandler = true;
    Application.Idle += HandleDeferredSelectionChanged;
}

Тогда в вашем HandleDeferredSelectionChanged ты можешь работать ты

private virtual void HandleDeferredSelectionChanged(object sender, EventArgs e) {
    // Remove the handler before triggering the event
    Application.Idle -= HandleDeferredSelectionChanged;
    _hasIdleHandler = false;

    // do your checking here
}

Эти идеи из ObjectListView, которые уже решают многие проблемы, с которыми вы столкнетесь ListView,

Другие вопросы по тегам