2

我在 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.
        }
    }
}

我对此没有任何问题,它在设计模式下打开没有任何问题。但是我创建了一个新的 UserControl,它扩展到第一个,如下所示:

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 方法和第二个实例的两个构造函数上放置了一个断点。结果:两个实例都被完全阻止了。

任何人都可以帮助我吗?

非常感谢您!

4

1 回答 1

0

好的,我发现了问题。

设计人员执行了一些代码,该代码使应用程序崩溃。它在 try-catch 中,在 catch 中,我使用一种尝试加载加密文件的方法记录了错误:Directory.GetFiles(Application.StartupPath, "*.xml")。问题是 Application.StartupPath 不是我的应用程序路径,而是“C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Microsoft.Data.ConnectionUI.xml”。所以,当我试图解密它时,它抛出了另一个异常,用相同的方法记录......所以无限循环!

于 2012-01-31T09:16:47.207 回答