在windows程序中的窗体继承是可以显示并可以修改的,但WindowsMobile程序的窗体继承为什么就不能了呢?
在设计器中始终提示:“visual继承当前被禁用,因为基类引用设备特定的组件或包含 p/invoke"
却显示不出来继承的控件,但运行后又可以显示出来,但我在继承窗体中加控件又不能显示出来,这是什么原因啊?有什么办法解决吗?

解决方案 »

  1.   

    MOBILE的控件不显示因为模拟器窗体限制吧,确实不能显示
      

  2.   

    因为基控件有设备特定的控件,所以当前禁用 Visual 继承。当基控件或基窗体具有设备特定的控件或组件时,托管项目中可能出现该消息。可以导致这种状态的情况包括以下几种:继承窗体的父窗体或继承用户控件的父控件包含设备特定的控件。在这种情况下,无法看到继承窗体或继承用户控件的设计器。窗体或用户控件包含设备特定的控件,此控件从另一个窗体或用户控件继承。在这种情况下,无法看到继承窗体或继承用户控件的设计器。项目引用设备特定的程序集,如 Microsoft.WindowsCE.Forms.dll。项目或项目引用的程序集包括平台调用。如果您能够确定不会在设计时执行平台调用,则通过将 DesktopCompatible(true) 属性放置在父窗体或父用户控件中,可以安全地启用可视继承。
      

  3.   

    请问DesktopCompatible(true) 属性在哪设置啊?
      

  4.   

    P/invoke,其中有平台调用,可能是跨windowsXP和windows mobile平台调用时有问题。
      

  5.   

    右键查看类关系图,这时你可以看到一个你的那个父窗体类图,在属性框中将“自定义属性”设为DesktopCompatible(true)就可以了
      

  6.   

    呵呵,找到解决办法了:http://blog.csdn.net/sohighthesky/archive/2009/06/07/4249129.aspx