В коде WinForms TreeView есть переменная, которая кажется ложной и должна меняться.C#

Место общения программистов C#
Ответить
Anonymous
 В коде WinForms TreeView есть переменная, которая кажется ложной и должна меняться.

Сообщение Anonymous »

Я хотел скопировать какой -нибудь пример кода, который я нашел в Интернете, но этот бит озадачил. В методе mainform () < /p>

Код: Выделить всё

treeView.BeforeSelect += (sender, e) => e.Cancel = !_isTreeInitialized;
Task.Delay(10).GetAwaiter().OnCompleted(() => _isTreeInitialized = true);
< /code>
Затем в теле < /p>
private bool _isTreeInitialized = false;
Похоже, что он пытается задержать любую навигацию по TreeView до тех пор, пока задержка не истечет, чтобы дать TreeView время для инициализации. Как ни странно, переменная _isTreeInitialized больше нигде в коде не появляется.

Я думал поставить Watch на _isTreeInitialized в Visual Studio и запустить пример, только осознать, что оно никогда не меняется, но всегда остается ложным.
Я предполагал, что оно станет истинным после того, как закончится время Task.Delay. Я неправильно понимаю что-то фундаментальное или это просто пример неработающего кода? В последнем случае это объясняет отсутствие использования _isTreeInitialized где-либо в коде.
Я запустил пример, но не получил никаких изменений в упомянутой переменной.Обновленный код находится здесь, на GitHub.
Оригинальное интересное сообщение о SO.
После некоторых разъяснений я вижу, что код имеет целью подавления первоначального выбора Node[0] элемента управления TreeView, я думаю, что временная блокировка взаимодействия пользователя с элементом управления — это всего лишь побочный эффект, но не обязательно плохой.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -be-changi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»