C# VS 2012 Winform designer和自定义控件的奇怪错误
我在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 我的示例适用于一个特定的情况,但事实上,我的项目中的所有控件都遇到了完全相同的问题,这些控件定义了使设计器可见的新属性。所有自定义事件也是如此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并在设计模式下设置它
在我的示例文本框中,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;
}