我正在使用紧凑型框架3.5和掌上电脑2003平台。
我正在为我的应用程序编写自定义控件。我希望将某些属性作为设计时属性公开。
MSDN(http://msdn.microsoft.com/en-us/library/tk67c2t8.aspx)中描述的方式实际上并不起作用。
我明白了:
找不到类型或命名空间名称“CategoryAttribute”(您是否缺少using指令或程序集引用?
我使用Intellisense来查看我可以写的属性。它列出了一些奇怪的东西,如:
还有更多。如果我尝试以这种方式使用它们:
public partial class Counter : UserControl
{
[EditorBrowsable(EditorBrowsableState.Always)]
[DesignerCategory("Data")]
[DesignTimeVisible(true)]
[DefaultValue(0)]
public UInt64 theNumber;
..我收到以下错误:
属性'DesignerCategory'不是 在此声明类型上有效。它是 仅对“阶级”声明有效。
属性'DesignTimeVisible'不是 在此声明类型上有效。它是 仅对“课程,界面”有效 声明。
使用设计时属性的正确方法是什么?
答案 0 :(得分:1)
这里真正的问题是你没有使用属性;你应该:
public ulong TheNumber { get; set; }
或
private ulong theNumber;
public ulong TheNumber {
get { return theNumber; }
set { theNumber = value; }
}
重新定义属性:基本上,紧凑框架不支持(不存在)这些属性。您引用的MSDN文章是“完整”.NET。如果你看(例如)DisplayNameAttribute,它就没有声称可以使用CF。
属性等应该已经 可用 在设计时设置;你只是没有相同水平的能力来调整设计时体验。
顺便说一下,ulong
在大多数代码中都很少见,但这不是问题。