我在 Visual Studio 2010(从 2008 转换而来)中有一个项目,我创建了一个用户控件,如下所示:
namespace Common.Controls
{
public partial class Panel_BaseMap : UserControl
{
public Panel_BaseMap()
{
//Some properties initialization here, just like = new X();
InitializeComponent();
}
private void BaseMapPanel_Load(object sender, EventArgs e) {
//Here, a new Thread is initialized and started.
}
}
}
我对此没有任何问题,它在设计模式下打开没有任何问题。但是我创建了一个扩展到第一个用户控件的新用户控件,如下所示:
using Common.Controls;
namespace BC.controls
{
public partial class MapPanel : Panel_BaseMap
{
public MapPanel()
{
InitializeComponent();
}
}
}
好吧,就在我尝试在设计模式下打开这个新控件的那一刻,Visual Studio 被完全阻止,我不得不强制关闭它,因为它没有响应。我已经尝试了很多东西,例如:
public MapPanel()
{
if (!this.DesignMode)
InitializeComponent();
}
仍然被阻止。我打开了 Visual Studio 的第二个实例,然后在第一个“调试 --> 附加到进程 --> devenv”上,我在 Load 方法和第二个实例的两个构造函数上放置了一个断点。结果:两个实例都被完全阻止。
有人能帮帮我吗?
非常感谢您!
最佳答案
好的,我找到问题了。
设计者执行了一些代码,该代码导致应用程序崩溃。它在 try-catch 中,在 catch 中,我使用尝试加载加密文件的方法记录了错误:Directory.GetFiles(Application.StartupPath, "*.xml")。问题是 Application.StartupPath 不是我的应用程序路径,而是“C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Microsoft.Data.ConnectionUI.xml”。所以,当我试图解密它时,它抛出了另一个异常,它是用相同的方法记录的……所以无限循环!
关于c# - 扩展用户控件后,Visual Studio 在设计模式下被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518503/