powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Форма в отдельном потоке поверх всех
6 сообщений из 6, страница 1 из 1
Форма в отдельном потоке поверх всех
    #38619058
Mihalyth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Разрабатываю чат в форточном приложении на c#. Замысел - всплывающее уведомление о новом сообщении (как в скайпе и аське). Окно должно быть поверх всех. Код:

Form1 a = new Form1();
a.ShowDialog();
При прямом вызове - нормально, но блокирует основное окно. Вызываю в отдельном потоке:

Thread t = new Thread(new ThreadStart(delegate
{
Form1 a = new Form1();
a.ShowDialog();
}
)
);
t.Start();

- TopMost и TopLevel игнорируются, показывает как обычное окно.
Вызов через a.Show(); ничего не даёт - мигает на долю секунды и закрывается.
Прошу помощи.
...
Рейтинг: 0 / 0
Форма в отдельном потоке поверх всех
    #38619095
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mihalyth, судя по коду, Вы не в потоке вызываете. Не исключаю, что для текста Вы сократили код.
Вызывайте из делегата.
Form1 a;
Thread t = new Thread(new ThreadStart(Delegate)
t.Start;
Delegate(.... <Если надо>....)
{
a = new Form1();
a.ShowDialog();
}
...
Рейтинг: 0 / 0
Форма в отдельном потоке поверх всех
    #38619148
Mihalyth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делал в обоих вариантах. Работает одинаково.
...
Рейтинг: 0 / 0
Форма в отдельном потоке поверх всех
    #38619156
Mihalyth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, решил проблему. Может, кому пригодится. Поток не нужен вообще. Вызов Form1.Show() делается последней строкой в конструкторе Form1. Работает так же, как уведомления Скайпа.
...
Рейтинг: 0 / 0
Форма в отдельном потоке поверх всех
    #38621837
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MihalythСпасибо всем, решил проблему. Может, кому пригодится. Поток не нужен вообще. Вызов Form1.Show() делается последней строкой в конструкторе Form1. Работает так же, как уведомления Скайпа.
по порите фигни, а лучше учите матчасть.

метод Show нужен был изначально, т.к. ShowDialog вызывет блокировку остальных окон до закрытия,
НО пихать его в конструктор это полный п....ц не совсем правильно
...
Рейтинг: 0 / 0
Форма в отдельном потоке поверх всех
    #38621984
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,

не, ну выдумать из головы, что topmost - шняга, а потом мозг выносить окружающим...
как минимум, ТСу следует пояснить, почему это вдруг topmost игнорируется
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Форма в отдельном потоке поверх всех
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]