Проблема с потерей фокуса при показе окна из другого потока
От: ___vic  
Дата: 29.04.11 16:42
Оценка:
Добрый вечер. Суть проблемы такова:
есть поток, который опрашивает удаленный сервер на наличие новых сообщений, затем вызывает метод обновления(допустим UpdateContent) через Invoke, в котором обновляется содержимое контролов основного окна и создается не модальное окно с кол-вом новых сообщений, и это окно забирает на себя фокус, непрятно когда в этот момент происходит работа с другим окном(наприм. печатаем ответ). Каким образом изменить это поведение, чтобы не было потери фокуса при порождении окна из другого потока?


02.05.11 10:53: Перенесено из '.NET'
Re: Проблема с потерей фокуса при показе окна из другого пот
От: AlexNek  
Дата: 30.04.11 15:21
Оценка:
Здравствуйте, ___vic, Вы писали:

_> Добрый вечер. Суть проблемы такова:

_> есть поток, который опрашивает удаленный сервер на наличие новых сообщений, затем вызывает метод обновления(допустим UpdateContent) через Invoke, в котором обновляется содержимое контролов основного окна и создается не модальное окно с кол-вом новых сообщений, и это окно забирает на себя фокус, непрятно когда в этот момент происходит работа с другим окном(наприм. печатаем ответ). Каким образом изменить это поведение, чтобы не было потери фокуса при порождении окна из другого потока?

Именно с подобным поведением не сталкивался (немодальные окна не выпедривались), поэтому чисто предположения:
Попробуйте SendToBack,UpdateZOrder, указать новому окну правильного родителя (не null)
avalon 1.0rc3 rev 419, zlib 1.2.3
Re[2]: Проблема с потерей фокуса при показе окна из другого
От: Аноним  
Дата: 01.05.11 10:07
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>Здравствуйте, ___vic, Вы писали:


_>> Добрый вечер. Суть проблемы такова:

_>> есть поток, который опрашивает удаленный сервер на наличие новых сообщений, затем вызывает метод обновления(допустим UpdateContent) через Invoke, в котором обновляется содержимое контролов основного окна и создается не модальное окно с кол-вом новых сообщений, и это окно забирает на себя фокус, непрятно когда в этот момент происходит работа с другим окном(наприм. печатаем ответ). Каким образом изменить это поведение, чтобы не было потери фокуса при порождении окна из другого потока?

AN>Именно с подобным поведением не сталкивался (немодальные окна не выпедривались), поэтому чисто предположения:

AN>Попробуйте SendToBack,UpdateZOrder, указать новому окну правильного родителя (не null)

AlexNek, спасибо за ответ, но мне это не помогло(возможно я что-то не то делал)... У меня это окно должно быть наверху(TopMost = true), при его появлении фокус уходит на него
Re[3]: Проблема с потерей фокуса при показе окна из другого
От: AlexNek  
Дата: 01.05.11 20:07
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

> AN>Здравствуйте, ___vic, Вы писали:


> _>> Добрый вечер. Суть проблемы такова:

> _>> есть поток, который опрашивает удаленный сервер на наличие новых сообщений, затем вызывает метод обновления(допустим UpdateContent) через Invoke, в котором обновляется содержимое контролов основного окна и создается не модальное окно с кол-вом новых сообщений, и это окно забирает на себя фокус, непрятно когда в этот момент происходит работа с другим окном(наприм. печатаем ответ). Каким образом изменить это поведение, чтобы не было потери фокуса при порождении окна из другого потока?

> AN>Именно с подобным поведением не сталкивался (немодальные окна не выпедривались), поэтому чисто предположения:

> AN>Попробуйте SendToBack,UpdateZOrder, указать новому окну правильного родителя (не null)

> AlexNek, спасибо за ответ, но мне это не помогло(возможно я что-то не то делал)... У меня это окно должно быть наверху(TopMost = true), при его появлении фокус уходит на него

Ну так TopMost это как бы и предполагает, по умолчанию. Гляньте здесь
avalon 1.0rc3 rev 419, zlib 1.2.3
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.