当尝试在设计模式下打开表单(VB.NET)时,我有一个自定义UserControl,我看到来自Visual Studio的消息:
---------------------------
Microsoft Visual Studio
---------------------------
The control MyNamespace.MyUserControl has thrown an unhandled exception
in the designer and has been disabled.
Exception:
Cannot access a disposed object.
Object name: 'SplitterPanel'.
Stack trace:
---------------------------
OK
---------------------------
表单未在设计器中显示。怎么办?
答案 0 :(得分:4)
使用调试模式加载项目,并在用户控件的InitializeComponent()
函数上放置一个断点。你可能会遇到一些错误,即处理一个名为SplitterPanel
的对象然后尝试访问它。当Visual Studio尝试呈现控件时,将运行此初始化,从而导致您看到的错误。
答案 1 :(得分:3)
删除属性
<System.Diagnostics.DebuggerStepThrough()> _
来自设计器内的InitializeComponent()。这将允许您逐步完成设计器。要弄清楚抛出异常的确切位置,还可以在
抛出CLR异常时中断调试菜单&gt;&gt;&gt;例外&gt;&gt;&gt;选中“Common Language Runtime Exceptions”,“Thrown”框
通过这两个步骤,您应该能够打破抛出异常的位置。
答案 2 :(得分:2)
您需要查看表单的设计者,以便在Dispose
方法中调用InitializeComponent
方法。会写这样的东西:
Me.SplitterPanel.Dispose()
因为这个调用对象在设计器中被销毁。所以它不再存在以展示和利用它。
删除此行将解决此问题。