Добрый день!
У меня следующая проблема. Есть окно, в котором две компоненты FrameGroup. В первом - все необходимые визуальные компоненты (в том числе DataGrid, к которому привязан Dataset). Во втором - ProgressBar. После нажатия пользователем любой кнопки (например, Печать), первый FrameGroup прячется и показывается второй, на котором показывается прогресс выполнения. Проблема появляется при вызове Dataset.GoToFirst(). Появляется ошибка "Cannot focus a disabled or invisible window". Самое интересное, что на тестовой системе всё работает, но после переноса на живую показывается вышеописанная ошибка. Кто-нибудь знает в чём может быть проблема?
Нравится
Наверное грид пытается "отрисоваться", когда Вы программно переходите на первую запись.
Может лучше не прятать первый FrameGroup, а просто сделать ему IsEnabled = false ?
Если все-таки требуется прятать, попробуйте отключить события датасате:
Dataset.DisableEvents(); try { // спрятали фрейм Dataset.GotoFirst(); // сделали работу ... } finally { // наверное, показали фрейм Dataset.EnableEvents(); }
Для этих целей лучше использовать отдельное окно wnd_ProcessingProgress.
Спасибо! DisableEvents помогло. wnd_ProcessingProgress не всегда можно использовать. Есть случаи, когда на окне все дёргаетьса (например большая функция Prepare). Я не хочу ето показывать пользователю, так как ето его роздражает. Вместо етого я показываю прогресс.