Предотвращение изменения TreeView SelectedNode до заполнения ListView - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть TreeView и ListView в моем приложении winforms.Проблема заключается в том, что когда пользователь выбирает узел из древовидного списка, заполнение представления списка займет некоторое время (из-за тяжелых вычислений!).

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

1 Ответ

1 голос
/ 03 декабря 2011

Вы можете использовать флаг, чтобы отслеживать состояние заполнения ListView и использовать событие BeforeSelect TreeView.Если ваш ListView все еще заполняется, обработчик события BeforeSelect отменяет событие:

    private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
    {
        if (_loading)
            e.Cancel = true; 
    }

    bool _loading = false; 
    void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
        _loading = true;
        // ListView populating
        _loading = false; 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...