我有一个C#Windows窗体项目,当我打开项目时,设计器视图突然显示一个空白窗体。不知道是什么导致了这种情况,但是由于我向工具箱添加了第三方控件,似乎发生了这种情况。设计师的代码仍然存在,当我运行应用程序时,所有控件都可以正常工作。任何人都有任何想法,我可以如何重新同步窗体设计器,以便正确显示控件。这是一个相对简单的形式,我可以很容易地复制,但我感觉有点棘手,它发生在更复杂的事情上。如何重新同步Visual Studio 2008 Windows窗体设计器?
谢谢。
我有一个C#Windows窗体项目,当我打开项目时,设计器视图突然显示一个空白窗体。不知道是什么导致了这种情况,但是由于我向工具箱添加了第三方控件,似乎发生了这种情况。设计师的代码仍然存在,当我运行应用程序时,所有控件都可以正常工作。任何人都有任何想法,我可以如何重新同步窗体设计器,以便正确显示控件。这是一个相对简单的形式,我可以很容易地复制,但我感觉有点棘手,它发生在更复杂的事情上。如何重新同步Visual Studio 2008 Windows窗体设计器?
谢谢。
见我的评论的问题,但简而言之,* .Designer.cs中的InitializeComponent()方法不能重命名,否则设计者不能显示你的表单。
第三方控件肯定会破坏设计器。请参阅my question,其中涉及我通过“文档大纲”处理的问题,这些问题是由错误的第三方控制引起的。
我建议你在项目中搜索可能有问题的控件的引用。如果您试图在某个时间点添加控件,并且添加失败,则可能会留下一些残留物,而这些残留物现在正在让设计人员失望。确保你正在搜索.designer文件 - 这就是控件通常被实例化的地方。
如果这不起作用,我会尝试从Visual Studio中卸载控件。
类Form暴露了一个叫做DesignMode的属性,它告诉你你是在VS里面还是在运行应用程序。 通常我做这在我的表格,以避免VS废话:
public MyForm()
{
InitializeComponents();
if (this.DesignMode)
{
return;
}
}
当然为了看你需要再重建项目的差异并关闭所有VS窗口
删除窗体构造函数中的任何try/catch语句。 – 2011-01-11 11:12:45
感谢Hans,但表单构造函数只包含标准的InitializeArea() – rob 2011-01-11 11:59:47