用户控件始终会使Visual Studio崩溃

问题描述 投票:11回答:12

我正在尝试在我们的一个项目中打开用户控件。我相信它是在VS 2003中创建的,并且该项目已转换为VS2008。我可以很好地查看代码,但是当我尝试加载设计器视图时,VS停止响应,因此必须使用任务管理器将其关闭。我试图让它运行几分钟,但是它什么也没做。我运行了“ devenv / log”,但是在日志中没有发现任何异常。我在任何地方都找不到特定的错误消息。知道可能是什么问题吗?有没有我可能可以使用的轻量级编辑模式?

我需要看一下该控件的直观表示,是为了确定在哪里插入一些新组件。

我已经尝试使用Google进行搜索并进行搜索,但是我不知道要搜索什么,或者对此一无所知。任何帮助表示赞赏。

((最奇怪的是,用户控件在另一个引用的项目中似乎可以很好地加载,但是只要我在该项目中单击它,VS就会崩溃。)

编辑

用户控件是第三方HTML编辑器的包装...因此访问数据库的对象不完全是。

我只是尝试将控件放到一个新项目上,将其拖到窗体上后便崩溃了。

visual-studio-2008 crash user-controls
12个回答
14
投票

我使用这里描述的技术解决了崩溃的设计师的问题:

Good Way to Debug Visual Studio Designer Errors

我已经能够通过运行第二个VS实例来调试一些控件设计器问题,然后从您的第一个VS实例中执行“调试->附加到进程”并选择“ devenv”。

AND

似乎设计者以某种方式解析了UserControls的Load()方法。将初始化和其他可疑代码放在if-循环中-检查IsDesignMode可以防止设计人员读取会使其崩溃的代码....

-更新:现在回想一下,当我考虑/重构应用程序设计时,大多数问题都解决了。


0
投票

最近创建用户控件并通过设计器将其附加到表单后,我遇到了烦人的错误,只要附加用户控件的表单具有相同表单的设计模式,Visual Studio 2010总是会崩溃。


0
投票

我也遇到了这个问题。我有一个包含用户控件的项目(ProjA),另一个引用了这些用户控件的项目(ProjB)。我发现,每次尝试添加特定的用户控件时,vb.net环境都会关闭并重新加载我的解决方案。但是,如果我注释掉控件LOAD事件中包含的代码


0
投票

我在IDE崩溃/重盯VS时遇到问题。


11
投票

您的用户控件可能具有这样编写的属性:

private int myPropName; // note the lowercase m
public int MyPropName { get { return MyPropName; } } // the property is returned
                                                     // instead of the variable

注意,get返回的值是属性本身。尝试查看控件的属性时,这会使VStudio 2008崩溃,将控件(通过拖放)添加到窗体时也会发生这种情况。

正如NickAldwin指出的那样,这不会生成编译器警告或错误。


3
投票

类似这样的语言通常与网络相关。也许是数据库。您必须注意在设计时在UserControl内部运行的代码。不仅是构造函数,还有Load事件,计时器,OnHandleCreated,OnResize等。避免运行该代码的方法是通过测试DesignMode属性,当它为true时不要做任何危险的事情。

您的最终回退是使用Visual Studio的另一个实例到debug the code at design time。>>


2
投票

为了继续阅读子宫的文章,我找到了以下代码来帮助防止VS崩溃并读取onLoad函数。


1
投票

我有同样的问题。就我而言,问题是(我认为)我正在声明中而不是构造函数中初始化成员数组。错误是,当我尝试使用具有“错误”声明的库中的自定义控件时,我的应用程序的VisualStudio项目立即崩溃。


1
投票

对我来说,有助于在项目设置中将目标框架从“ .Net Framework 4客户端配置文件”更改为“ .Net Framework 4”。


0
投票

尝试注释掉控件的部分甚至整个构造函数,然后查看它是否显示出来。也许这也是另一个失败的初始化。


0
投票

完成所有操作后,我还将尝试将用户控件加载到一个全新的项目中,并查看它是否正确加载;如果可以,那么您可以“ 决定在哪里插入一些新组件


0
投票

在Visual Studio中创建自己的用户控件时,我遇到了类似的问题,但是通过执行以下步骤,可以使用户控件正确显示:

© www.soinside.com 2019 - 2024. All rights reserved.