我创建了一个表单应用程序,并在上面放置了一个选项卡控件。在同一个项目中,我添加了一个UserControl,其中包含一个选项卡所需的所有控件。然后我将此UserControl放置在选项卡控件的第二个选项卡上。
现在,当我打开设计器修改表单应用程序时,它加载OK(尽管它比平常花费更长的时间),但当我选择第二个选项卡时,MSVS只是冻结,说它遇到了错误,并重新启动(大多数时候)。
我点击“调试”按钮,打开一个新的MVS 2005窗口并显示:“devenv.exe中0x 10 d84 c12处的未处理异常:0xC0000005:阅读位置0x 00000000时发生访问冲突。”
不知道发生了什么事...:(尝试重新启动,但没有工作。
任何帮助将不胜感激!
2条答案
按热度按时间0ejtzxu11#
如果控件最终执行非托管代码,则可能会发生这种情况。
确保控件的源代码在
DesignMode
为true时不执行任何操作。如果使用ActiveX控件,也可能发生这种情况;如果控件处于设计模式,请尝试在代码中移除它们。
您可以在
Load
处理程序中执行此操作:0md85ypi2#
我在tabcontrol中遇到了类似的问题,但这是因为子控件将一些代码运行到它的_Load事件中,即使代码被if(DesignMode) Package ,它仍然会被执行。解决方案是创建一个字段来保存构造函数中的designmode标志,然后将其读入load事件。