在我的Windows Mobile项目中,我有一个表单(让我们称之为M表示帮助保持正确)我需要以模态方式显示,所以我在表单的新副本上使用ShowDialog方法。当我从占据整个屏幕的窗体(窗体A)显示它时(WindowState最大化,位置0,0,所有其他属性默认除了名称,设计师选择它并显示它没有标题栏),它显示标题栏完好无损。
但是,如果我在此表单(表单B)的顶部显示另一个模式窗口,它占用整个屏幕并使用与表单A相同的表单属性,然后尝试从该表单显示模式对话框M,标题栏不可见,我可以在其后面看到表格B的顶部。表单M还具有除ControlBox False之外的所有默认属性,因此在设计器中显示标题栏。
关于要寻找什么的任何想法?我已经尝试过操作父模型和模态表单(WindowState,FormBorderStyle,ControlBox,TopMost等)的所有组合,并且还没有找到可以工作的组合。
它在Windows Mobile 6 Classic模拟器和我的设备上都表现出相同的行为。
这是M形式应该是什么样子,它在表格A上面显示时:
Good Form http://imagebin.antiyes.com/images/0710161001266357909_33.png
当表格M显示在表格B(和表格A)的顶部时:
Bad Form http://imagebin.antiyes.com/images/0020949001266357931_33.png
(这些屏幕截图取自我的Dell Axim X51V,屏幕为480x640。)
这个项目在过去运作良好,我刚刚将它从VS2005转换为VS2008,我想知道转换中的某些事情会导致这种情况发生。
编辑:我注意到我的应用程序中有标题栏的其他表单正在尝试显示在表单B之上,并且它表现出相同的行为。如果发生这种情况,我按下日历硬件按钮打开日历应用程序,然后按Ctrl + Q(我使用MyMobiler进行设备的屏幕截图和键盘控制),日历窗口消失,表格M显示起来,这次标题栏显示得很好。