В моем проекте для Windows Mobile у меня есть форма (назовем ее формой M, чтобы упростить задачу), которую мне нужно отображать модально, поэтому я использую метод ShowDialog для новой копии формы. Когда я показываю его из формы (форма A), которая занимает весь экран (WindowState Maximized, Location 0,0, все остальные свойства по умолчанию, кроме имени, дизайнер выбирает это и показывает без заголовка), он показывает в порядке с неповрежденной строкой заголовка.
Однако, если я отображаю другое модальное окно поверх этой формы (форма B), которое занимает весь экран и использует те же свойства формы, что и форма A, а затем пытаюсь показать модальную диалоговую форму M из этой формы, строка заголовка не видна, и я вижу верхнюю часть формы B за ней. Форма M также имеет все свойства по умолчанию, кроме ControlBox False, и поэтому отображается в конструкторе со строкой заголовка.
Есть идеи, что искать? Я попробовал почти все комбинации манипулирования свойствами родительской и модальной форм (WindowState, FormBorderStyle, ControlBox, TopMost и т. Д.) И не нашел комбинацию, которая еще работает.
Он демонстрирует одинаковое поведение как в эмуляторе Windows Mobile 6 Classic, так и на моем устройстве.
Вот как должна выглядеть форма M, что и происходит при отображении поверх формы A:
Хорошая форма http://imagebin.antiyes.com/images/0710161001266357909_33.png
И когда форма M отображается поверх формы B (и формы A):
Плохая форма http://imagebin.antiyes.com/images/0020949001266357931_33.png
(Эти снимки экрана взяты из моего Dell Axim X51V, который имеет экран 480x640.)
В прошлом этот проект работал нормально, я просто преобразовал его из VS2005 в VS2008, и мне интересно, что-то в преобразовании вызывает это.
EDIT : я заметил, что это происходит с другими формами с полосами заголовка в моем приложении, которые пытаются показать поверх формы B, и это демонстрирует то же поведение. Если, когда это происходит, я нажимаю аппаратную кнопку «Календарь», чтобы открыть приложение календаря, а затем нажимаю Ctrl + Q (я использую MyMobiler для снимков экрана и управления клавиатурой устройства), окно «Календарь» исчезает, и форма M показывает вверх, на этот раз со строкой заголовка, показывающей просто отлично.