Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MessageBox в dotNET

425
18 февраля 2005 года
sq_deep
498 / / 18.02.2005
Господа, помогите, пожалуйста, разобраться с проблемой.

Итак, я создаю в .NET Windows application. Выдаю такой MessageBox:

MessageBox.Show(
"text",
"caption",
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);

Показывает mbox, у которого:
- caption хороший;
- текст не показывает;
- на кнопке надпись "OK" не показывает.

При этом Spy++ показывает окна с правильными текстами.

Далее, если я не закрываю mbox и открываю его снова, он опять показывается неверно.

Если же я продолжаю работать с другими приложениями, не закрывая mbox, то через некоторое время я замечаю, что он показан правильно. После этого можно его закрыть и снова открыть, и он будет хорошим. Однако, если я завершаю приложение, которое выдаёт mbox, и стартую его заново, mbox снова становится плохим.

Что интересно, это у меня происходит только на работе и только на Win 2000. Дома у меня тоже Win 2000 и та же инсталяция .NET, но дома всё работает на ура.

Что посоветуете?

[COLOR=silver]Спрашивал в нескольких форумах — никто ничего не может подсказать... Надежда только на вас осталась.[/COLOR]
259
18 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by sq_deep
Господа, помогите, пожалуйста, разобраться с проблемой.

Итак, я создаю в .NET Windows application. Выдаю такой MessageBox:

MessageBox.Show(
"text",
"caption",
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);

Показывает mbox, у которого:
- caption хороший;
- текст не показывает;
- на кнопке надпись "OK" не показывает.

При этом Spy++ показывает окна с правильными текстами.

Далее, если я не закрываю mbox и открываю его снова, он опять показывается неверно.

Если же я продолжаю работать с другими приложениями, не закрывая mbox, то через некоторое время я замечаю, что он показан правильно. После этого можно его закрыть и снова открыть, и он будет хорошим. Однако, если я завершаю приложение, которое выдаёт mbox, и стартую его заново, mbox снова становится плохим.

Что интересно, это у меня происходит только на работе и только на Win 2000. Дома у меня тоже Win 2000 и та же инсталяция .NET, но дома всё работает на ура.

Что посоветуете?

[COLOR=silver]Спрашивал в нескольких форумах — никто ничего не может подсказать... Надежда только на вас осталась.[/COLOR]


Это же ничего.net. Просто у тебя на работе он не успевает все нарисовать. Потом рефрешь и все вывелось правильно, потом ты его убиваешь и все начинается заново.

425
21 февраля 2005 года
sq_deep
498 / / 18.02.2005
Что значит "не успевает все нарисовать"? Неужели вы думаете, что я успел задать вопрос раньше, чем он обработал WM_PAINT?

Тут что-то совсем другое. Я могу перекрывать MessageBox Notepad'ом и снова вытаскивать его в foreground, и он всё равно не рисуется правильно. Но если MessageBox оставить открытым на полдня и заняться другими делами, например, посылкой сообщений в форум, то он в какой-то момент начинает показываться правильно.

Другой глюк наблюдается с диалогом OpenFile. Он работает правильно, но показывает графику по-уродски.

При этом в программе на C++ с MFC как CWnd::MessageBox(), так и ::GetOpenFileName() работают правильно.

Прилагаю картинку в надежде, что кто-нибудь всё же посоветует что-нибудь конструктивное...
301
21 февраля 2005 года
lord Kelvin
897 / / 08.11.2004
Я всегда делал вот так
 
Код:
MessageBox(NULL,"text","caption",MB_OK,);

и все пучком.
425
21 февраля 2005 года
sq_deep
498 / / 18.02.2005
Я тоже так делаю, когда пишу на C/C++, но только мой вопрос про C# и .NET Framework...
259
21 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by sq_deep
Я тоже так делаю, когда пишу на C/C++, но только мой вопрос про C# и .NET Framework...


Может Framework на работе криво встал?

425
22 февраля 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by AlexandrVSmirno

Может Framework на работе криво встал?


Переставлял, не помогает...

Вот чем действительно ситуация на работе отличается от домашней, так это тем, что дома я время от времени гружу обновления Win2k, а на работе сисадмины это дело заблокировали по каким-то им одним ведомым высшим соображениям безопасности.

Причём — что убивает — CWnd::MessageBox() из MFC и ::MessageBox() из user32 работают, как часы. Но я больше не хочу C++. Хочу C#.

Кстати, и на Бейсике MessageBox работает криво, но тут я не удивляюсь. Тоже ведь вызывается из Framework'а.

Вот же блин горелый...:x Придётся, видимо, написать библиотеку на C++ с MessageBox'ами и common диалогами...

А кто знает какой-нибудь хороший форум про .NET?

9.6K
22 февраля 2005 года
TRE
5 / / 22.02.2005
Цитата:
Originally posted by sq_deep
А кто знает какой-нибудь хороший форум про .NET?


dotsite.ru

319
23 февраля 2005 года
xelos
577 / / 27.02.2003
с региональными настройками все в порядке? иногда похожие глюки бывают из-за того, что языковые настройки винды не совпадают с языком VS.
425
24 февраля 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by TRE

dotsite.ru



Спасибо большое.

425
24 февраля 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by xelos
с региональными настройками все в порядке? иногда похожие глюки бывают из-за того, что языковые настройки винды не совпадают с языком VS.



Идея Ваша показалась мне хорошей.

Поменял regional settings на English-US, не помогает... вернул назад в Russian.

Internet Explorer English, MS Office тоже English, Oracle client тоже... больше вроде бы и нет ничего такого крупного.

И что интересно: у меня такая ерунда несколько лет назад была, но вот хоть убей не помню, что я тогда сделал:x

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог