none
vs2005查看窗体设计器的时候出现html错误提示 RRS feed

  • 问题

  • 我在vs2005里做了一个winform控件,继承自UserControl,刚开始还好好的,写了一会发现窗体设计器不能显示控件了,出来的是一堆html错误提示,

    内容是:加载设计器时遇到一个或多个错误。这些错误在下面列出。一些错误可通过重新生成项目来修复,而另一些错误则需要更改代码

    类型“System.Windows.Forms.UserControl”没有名为“NameCondCaption”的属性

    System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink)

    System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializePropertyReferenceExpression(IDesignerSerializationManager manager, CodePropertyReferenceExpression propertyReferenceEx, Boolean reportError)
    System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression)
    System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializePropertyAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement, CodePropertyReferenceExpression propertyReferenceEx, Boolean reportError)
    System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement)
    System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement)

     

    NameCondCaption属性是这么定义的:

            public string NameCondCaption
            {
                get
                {
                    return this._nameCondCaption;
                }
                set
                {
                    this._nameCondCaption = value;
                    this.nameLabel.Text = value;
                }
            }
            private string _nameCondCaption = "名称";

     

    我觉得应该没什么问题,为什么打不开呢

     

     


    • 已移动 Andrew.WuModerator 2011年3月7日 6:38 (发件人:Visual Studio 相关讨论(Visual Studio 2010以前版本))
    2011年3月4日 1:55

答案

  • 这类问题很常见的。主要是自定义控件的默认加载程序出错。 VS Designer显示每一个窗口设计器的时候,其实是通过反射加载运行了你的页面,然后为

    每个可编辑的控件加入了各种可控制的界面操作功能而已。 因此如果你的自定义窗口/页面在默认的初始化和显示环节出错的话---即使有任何不起眼的异常,都会导致设计器加载窗口/页面失败。

    1。通用的调试方法是自己写一个测试程序,直接初始化该form/page, 基本上都能够重现该问题。然后自行调试解决。 这里注意要在测试函数最外层增加try,cach,以便捕获那些你平时没有注意到的异常外歇。

    2。如果以上自己调用form/page不出错,那么就要检查加载过程数据。 通常用户自定义页面正常工作都是需要加载一部分数据的。而VS Designer单独加载页面时,runtime可能并不具备这些初始化窗体的数据,因此造成设机器加载失败。

    3。检查自定义窗口/页面中所调用的其它自定义属性或控件的默认初始化过程是否出错。方法类似前两点。

    4。如果以上几点都被排除,那么就要一步一步地把自定义的各种变量和属性逐一注释掉并编译,然后再用设计器加载。最终总会找到那个罪魁祸首^oo^

    5。最后也是我的个人建议。一定要养成良好的单元测试开发习惯。每写一个class, method , form, page 都自己写一个对应的test class何多个test method进行测试。每天关机以前运行所有的单元测试程序。 只有完全通过的时候再check in 和关机。即:每天结束时永远保持代码是最可靠的,且第二天总可以站在坚实的基础上继续前进。 这样的话,基本上没有可能遇到你这种莫名其妙的问题了。good luck!!


    信奎爷,无所畏惧!!
    2011年3月8日 7:00

全部回复

  • 你好

    或者你可以嘗試 CLEAN 你的SOLUTION, 之後 REBUILD 看看能不能解決這個問題

    Please correct me if my concept is wrong


    Chi
    2011年3月4日 6:17
    版主
  • 这个办法没有用
    2011年3月4日 7:38
  • Hi,

    我把你的帖子移动到了Visual C#论坛,你可以在这边得到更多的帮助。

    谢谢你的理解。


    Andrew Wu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月7日 6:40
    版主
  • 您好 bucherren,

    我认为您对NameCondCaption属性的定义是没有问题的。应该是该自定义控件中的其他部分代码导致的。您不妨给出更加详细的代码给我们,这样我们才能帮您调试并告诉您什么地方出了问题!


    Neddy Ren [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月7日 6:51
  • 注释掉出错语句,在编译看看,是不是控件没编译成功
    http://feiyun0112.cnblogs.com/
    2011年3月8日 1:20
    版主
  • 这类问题很常见的。主要是自定义控件的默认加载程序出错。 VS Designer显示每一个窗口设计器的时候,其实是通过反射加载运行了你的页面,然后为

    每个可编辑的控件加入了各种可控制的界面操作功能而已。 因此如果你的自定义窗口/页面在默认的初始化和显示环节出错的话---即使有任何不起眼的异常,都会导致设计器加载窗口/页面失败。

    1。通用的调试方法是自己写一个测试程序,直接初始化该form/page, 基本上都能够重现该问题。然后自行调试解决。 这里注意要在测试函数最外层增加try,cach,以便捕获那些你平时没有注意到的异常外歇。

    2。如果以上自己调用form/page不出错,那么就要检查加载过程数据。 通常用户自定义页面正常工作都是需要加载一部分数据的。而VS Designer单独加载页面时,runtime可能并不具备这些初始化窗体的数据,因此造成设机器加载失败。

    3。检查自定义窗口/页面中所调用的其它自定义属性或控件的默认初始化过程是否出错。方法类似前两点。

    4。如果以上几点都被排除,那么就要一步一步地把自定义的各种变量和属性逐一注释掉并编译,然后再用设计器加载。最终总会找到那个罪魁祸首^oo^

    5。最后也是我的个人建议。一定要养成良好的单元测试开发习惯。每写一个class, method , form, page 都自己写一个对应的test class何多个test method进行测试。每天关机以前运行所有的单元测试程序。 只有完全通过的时候再check in 和关机。即:每天结束时永远保持代码是最可靠的,且第二天总可以站在坚实的基础上继续前进。 这样的话,基本上没有可能遇到你这种莫名其妙的问题了。good luck!!


    信奎爷,无所畏惧!!
    2011年3月8日 7:00