winforms 无法在设计模式下打开窗体

vs3odd8k  于 2023-03-24  发布在  其他
关注(0)|答案(5)|浏览(161)

当我打开窗体时,我无法进入设计模式,并得到以下错误:

The variable 'MonthViewCalendar'
    (internal 
        Infragistics.Win.UltraWinSchedule.UltraMonthViewSingle 
        MonthViewCalendar;)
is either undeclared or was never assigned.

你知道为什么窗体不能进入设计模式吗?我用的是VS2010.
我试过-干净的解决方案,重新启动VS和重新开放,但这并没有解决我的问题。

x3naxklr

x3naxklr1#

有时您可能会发现项目文件丢失了在设计模式下打开文件所需的正确子类型。
要修复:

  • 关闭VS,然后使用文本编辑器编辑项目的“.csproj”文件
  • 寻找
  • 如果没有“Form“,则按如下所示将其添加回去

表格

wdebmtf2

wdebmtf22#

进入Form.Designer.cs文件并删除“abcd”的声明。然后将其重新加载到设计器中。

qv7cva1a

qv7cva1a3#

如果在类的实现之上插入一个新类,就可能发生这种情况。

bqjvbblv

bqjvbblv4#

对我来说,有效的方法是关闭并重新启动Visual Studio,然后重新构建。之后,窗体可以在设计模式下打开。我不会说我特别喜欢我的解决方案,但我还没有想出一个更可靠的解决方案。
编辑:我只在表单上有Infragistics控件时遇到过这个问题。

rjjhvcjd

rjjhvcjd5#

我知道我的答案并不完全符合OPs问题,但我想我会加上它,因为它似乎是松散的相关...
我的表单也突然无法在Visual Studio 19的设计器模式下打开,我不知道为什么。
我通过@david-forge应用了上面的修复程序,只有这样Visual Studio才显示了实际的问题。
可以设计类client_Form,但它不是文件中的第一个类。Visual Studio要求设计器使用文件中的第一个类。请移动类代码,使其成为文件中的第一个类,然后再次尝试加载设计器。
这是一个奇怪的情况,Visual Studio将不会显示此错误消息,除非您添加窗体修复(至少对我来说)。
所以似乎有一些特殊的规则,forms类必须是窗体源文件中的第一个类,否则你将失去在设计器中打开窗体的能力,而Visual Studio永远不会向你展示为什么 doh
从理论上讲,Visual Studio应该检查并报告它所发现的,而不仅仅是不报告它,并在没有任何解释的情况下删除设计功能。
下面是一个小的示例代码,它将导致有问题的表单无法在设计器模式下编辑。

using System;
using System.Drawing;
using System.Text;

namespace MyProject
{
    public class this_breaks_designer_capabilities
    {

    }

    public partial class client_Form : Form
    {

        public client_Form()
        {
            InitializeComponent();
        }
    }
}

只需将this_breaks_designer_capabilities类移到client_Form类下面,就可以恢复在设计器模式下编辑表单的功能。
注意:我不知道这个 * 特性 * 是否存在于Visual Studio的更高版本中。有人能证实吗?

相关问题