В моем пользовательском контроле я выполняю длительную операцию. Чтобы пользователи не могли щелкнуть пользовательский интерфейс, я показываю индикатор выполнения и отключаю весь пользовательский интерфейс, например:
this.Enabled = false;
ShowProgressBar();
DoLengthyOperation();
RemoveProgressBar();
this.Enabled = true;
Это работает нормально. Однако у моего пользовательского элемента управления есть много других элементов управления, в которых также есть элементы управления, внутри которых также есть элементы управления, и т. Д.
this.Enabled = false
вызов, таким образом, отключает множество элементов управления. Это намеренно. Но у меня проблема в том, что вы можете видеть, как пользовательский интерфейс отключает каждый элемент управления один за другим. Это происходит довольно быстро, но, поскольку существует так много элементов управления, вы можете увидеть, как он проходит через все элементы управления. Это не выглядит профессионально, это заставляет экран мерцать и мои глаза болят.
Есть ли способ предотвратить перерисовку пользовательского интерфейса до тех пор, пока все элементы управления не будут отключены, а затем выполнить одно перерисовывание?
Надеюсь, это не глупый вопрос;)
Не знаю, относится ли это к делу: мои элементы управления получены из DevExpress.XtraEditors.XtraUserControl.