Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS 2012 Winform designer和自定义控件的奇怪错误_C#_Winforms_Visual Studio 2012_Designer_Windows Forms Designer - Fatal编程技术网

C# VS 2012 Winform designer和自定义控件的奇怪错误

C# VS 2012 Winform designer和自定义控件的奇怪错误,c#,winforms,visual-studio-2012,designer,windows-forms-designer,C#,Winforms,Visual Studio 2012,Designer,Windows Forms Designer,我在Visual Studio 2012 designer for winform中遇到一个奇怪的设计器错误 请注意,VS 2010和VS 2014 CTP都不会发生这种情况:仅2012年 错误如下: 假设我在类库中有一个类,它是System.Windows.Forms.TextBox的直接重写。 在它里面,我添加了一些属性来满足我的需要,我称之为EnhancedTextBox。 例如: 假设现在我得到了一个新的UserControl,它使用我的EnhancedTextBox并在设计模式下设置它

我在Visual Studio 2012 designer for winform中遇到一个奇怪的设计器错误

请注意,VS 2010和VS 2014 CTP都不会发生这种情况:仅2012年

错误如下:

假设我在类库中有一个类,它是System.Windows.Forms.TextBox的直接重写。 在它里面,我添加了一些属性来满足我的需要,我称之为EnhancedTextBox。 例如:

假设现在我得到了一个新的UserControl,它使用我的EnhancedTextBox并在设计模式下设置它的属性AllowCaseChanging。 在VS 2010中,一切顺利。 但在2012年,我在打开UserControl时出现以下错误:

如果我选择忽略并继续,VS将删除.designer.cs中的所有自定义属性,从而将一切都搞糟

请注意,我可以很好地构建它,并且在运行时没有问题:这只是一个设计器问题

目标框架:4,与2012年相比,Windows 8下的每一次更新都是最新的AFAIK

我的示例适用于一个特定的情况,但事实上,我的项目中的所有控件都遇到了完全相同的问题,这些控件定义了使设计器可见的新属性。所有自定义事件也是如此


在我的示例文本框中,VS2012似乎看不到我的属性和事件,只有来自基本控件的属性和事件。

该属性没有getter。@Wiktor Zychla>抱歉,只是代码示例中的一个输入错误。但是getter在那里,正如我所说的,问题也发生在事件中。。。在你的getter和setter中,实际上是一条非常重要的信息。如果你有副作用,那么设计师会爆炸。@Richard:我不确定你的问题。一个最简单的解决方案,一个只包含代码的类库和一个引用该库的windows窗体应用程序。设计师工作得很有魅力,让我改变你的财产价值。Windows 7+VS2012。我支持helrich的评论-您可能会做一些其他的事情而不是呈现的代码。我理解您的意思,但不幸的是。。。正在订阅/取消订阅事件的处理程序。但这只是针对这种情况,正如我告诉所有基于winform控件的重写控件中的每个自定义属性,或者没有代码隐藏的事件处理程序在这台计算机上的designer with VS2012上引发相同的错误。正如我所说的,同样的代码在2010年和2014年都是可以的,这使得问题变得更加奇怪。。。即使根据windows update/nuget,一切似乎都是最新的,我也在想一个与安装相关的bug。。。无论如何,谢谢你的帮助!
public partial class EnhancedTextBox : TextBox
{
    [DefaultValue(false)]
    [Category("CatBehavior")]
    [Browsable(true)]
    [EditorBrowsable(EditorBrowsableState.Always)]
    public bool AllowCaseChanging
    {
        get;
        set;
    }