用户控件属性设计器属性

Posted

技术标签:

【中文标题】用户控件属性设计器属性【英文标题】:User Control Property Designer Properties 【发布时间】:2010-09-05 17:45:32 【问题描述】:

对于 Windows Mobile 上的 C# UserControl(尽管如果您知道它适用于完整的 Windows,请回答...它可能会起作用)您如何更改控件的公共属性之一的“设计器属性”窗口中显示的内容。例如:

private Color blah = Color.Black;

public Color Blah

    get  return this.blah; 
    set  this.blah = value; 

这显示在控件中,但它属于“杂项”类别,没有描述或默认值。我尝试过使用 System.ComponentModel 中的设置,例如“DesignerCategory”,例如:

[DesignerCategory("Custom")]

但是说这仅对类声明有效...可以发誓这是我之前使用的 System.ComponentModel 项...

更新:

@John 说:

DesignerCatogy 用于表示如果 class 是一个表单、组件等。

试试这个:

[类别(“自定义”)]

我需要使用特定的命名空间来获取这些命名空间吗? 我已经完全尝试过了,编译器无法识别它们。

在 .NETCF 中,我似乎可以从 System.ComponentModel 获得的只是:

DataObject,
DataObjectMethod,
DefaultValue,
DesignerCategory,
DesignTimeVisible,
EditorBrowsable

它唯一不会尖叫的是 EditorBrowsable

【问题讨论】:

devx.com/dotnet/Article/32421/1763/page/2#codeitemarea 【参考方案1】:

DesignerCategory用来表示类是表单还是组件等

对于完整的窗口,您想要的属性是:

[System.ComponentModel.Category("Custom")]

对于描述,您可以使用[System.ComponentModel.Description("This is the description")]

同时使用:

[System.ComponentModel.Category("Custom"),System.ComponentModel.Description("This is the description")]

不过,这是 system.dll 的一部分,对于 windows mobile 可能会有所不同。

【讨论】:

【参考方案2】:

本文并未暗示任何人在设备上进行设计。但是,当您创建 Compact Framework 项目时,Compact 框架(适用于您的台式 PC)用于处理设计时渲染。如果您考虑一下,这就是您所期望的。相同的框架(或几乎如此)用于在设计时在您的 PC 上进行渲染,然后在运行时在设备上进行渲染。问题是设计时属性没有添加到紧凑框架中(我假设要减小大小)。

【讨论】:

【参考方案3】:

这对你有用吗?我不参与 CF 开发,但看起来您需要添加一些 XML 元数据才能启用它:

http://blogs.msdn.com/bluecollar/archive/2007/02/08/adding-compact-framework-design-time-attributes-or-more-fun-with-textboxes.aspx

有趣的阅读.. 看起来很多设计时支持从 CF 中剥离出来,因为您没有在设备上设计它们.. 这对我来说似乎有点奇怪.. 无法想象使用手持设备作为开发平台!

向下滚动大约一半以获得好东西;)

【讨论】:

啊……这就解释了!我同意,我不明白他认为有人如何在设备上设计这个......最后我检查了没有 Visual Studio 的 Windows Mobile 版本!一定有其他原因,不管它多么愚蠢……谢谢!

以上是关于用户控件属性设计器属性的主要内容,如果未能解决你的问题,请参考以下文章

如何停止设计器为用户控件上的公共属性生成代码?

设计器模式下的 ASP.NET 用户控件属性值选项

Qt编写自定义控件属性设计器

如何停止 Visual Studio 为设计器中的控件生成属性设置?

.net WinForm用户控件开发:用户控件的基本属性设置

Qt编写的项目作品2-控件属性设计器(组态)