Добрый вечер. Суть проблемы такова:
есть поток, который опрашивает удаленный сервер на наличие новых сообщений, затем вызывает метод обновления(допустим UpdateContent) через Invoke, в котором обновляется содержимое контролов основного окна и создается не модальное окно с кол-вом новых сообщений, и это окно забирает на себя фокус, непрятно когда в этот момент происходит работа с другим окном(наприм. печатаем ответ). Каким образом изменить это поведение, чтобы не было потери фокуса при порождении окна из другого потока?
02.05.11 10:53: Перенесено из '.NET'
Здравствуйте, ___vic, Вы писали:
_> Добрый вечер. Суть проблемы такова:
_> есть поток, который опрашивает удаленный сервер на наличие новых сообщений, затем вызывает метод обновления(допустим UpdateContent) через Invoke, в котором обновляется содержимое контролов основного окна и создается не модальное окно с кол-вом новых сообщений, и это окно забирает на себя фокус, непрятно когда в этот момент происходит работа с другим окном(наприм. печатаем ответ). Каким образом изменить это поведение, чтобы не было потери фокуса при порождении окна из другого потока?
Именно с подобным поведением не сталкивался (немодальные окна не выпедривались), поэтому чисто предположения:
Попробуйте SendToBack,UpdateZOrder, указать новому окну правильного родителя (не null)
Здравствуйте, Аноним, Вы писали:
> AN>Здравствуйте, ___vic, Вы писали:
> _>> Добрый вечер. Суть проблемы такова:
> _>> есть поток, который опрашивает удаленный сервер на наличие новых сообщений, затем вызывает метод обновления(допустим UpdateContent) через Invoke, в котором обновляется содержимое контролов основного окна и создается не модальное окно с кол-вом новых сообщений, и это окно забирает на себя фокус, непрятно когда в этот момент происходит работа с другим окном(наприм. печатаем ответ). Каким образом изменить это поведение, чтобы не было потери фокуса при порождении окна из другого потока?
> AN>Именно с подобным поведением не сталкивался (немодальные окна не выпедривались), поэтому чисто предположения:
> AN>Попробуйте SendToBack,UpdateZOrder, указать новому окну правильного родителя (не null)
> AlexNek, спасибо за ответ, но мне это не помогло(возможно я что-то не то делал)... У меня это окно должно быть наверху(TopMost = true), при его появлении фокус уходит на него
Ну так TopMost это как бы и предполагает, по умолчанию. Гляньте
здесь