PDA平台上MessageBox和SIP的冲突

在程序中应用MessageBox弹出错误提示消息的时候,当点击OK按钮后,发现MainMenu上面的软键盘图标消失了,必须手工点击一次才能出现。虽然不影响正常功能的使用,但是对于PDA菜鸟来说可能会感到很迷惑,尝试了很多刷新界面的方法都无法解决。

这种稀奇古怪的问题在百度上一般是找不到答案的,直接到Google上查询,发现老外也遇到这个问题:
http://www.dotnet247.com/247reference/msgs/44/220736.aspx
并且没有具体可行的解决方法。

搞笑的是有人也发现了这个BUG,但他很聪明, 做了一个叫做MsgBox shareware library 的共享软件,有提到解决了这个BUG,但没有提供源码,对我来说也是没有用处:
http://www.mpegtv.com/wince/msgbox/

但从这里我得到了一点启发:SIP和MainMenu是一个整体的,我试着将窗体的Menu设置为NULL,然后重新设置其Menu属性,经过测试居然成功了,呵呵。

            MessageBox.Show("Demo error""Error", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
            
this.Menu = null;
            
this.Menu = this.mainMenu1;

遇到这些问题真的是头大,有时候问题解决了都不知道是什么原因的。

原文地址:https://www.cnblogs.com/swnuwangyun/p/881738.html