C#& CF:设计时属性

时间:2010-01-07 10:56:11

标签: c# coldfusion

我正在使用紧凑型框架3.5和掌上电脑2003平台。

我正在为我的应用程序编写自定义控件。我希望将某些属性作为设计时属性公开。

MSDN(http://msdn.microsoft.com/en-us/library/tk67c2t8.aspx)中描述的方式实际上并不起作用。

我明白了:

  

找不到类型或命名空间名称“CategoryAttribute”(您是否缺少using指令或程序集引用?

我使用Intellisense来查看我可以写的属性。它列出了一些奇怪的东西,如:

  • EditorBrowsable
  • DesignerCategory
  • 默认值
  • DesignTimeVisible

还有更多。如果我尝试以这种方式使用它们:

public partial class Counter : UserControl
{
[EditorBrowsable(EditorBrowsableState.Always)]
[DesignerCategory("Data")]
[DesignTimeVisible(true)]
[DefaultValue(0)]
public UInt64 theNumber;

..我收到以下错误:

  

属性'DesignerCategory'不是   在此声明类型上有效。它是   仅对“阶级”声明有效。

     

属性'DesignTimeVisible'不是   在此声明类型上有效。它是   仅对“课程,界面”有效   声明。

使用设计时属性的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

这里真正的问题是你没有使用属性;你应该:

public ulong TheNumber { get; set; }

private ulong theNumber;
public ulong TheNumber {
    get { return theNumber; }
    set { theNumber = value; }
}

重新定义属性:基本上,紧凑框架不支持(不存在)这些属性。您引用的MSDN文章是“完整”.NET。如果你看(例如)DisplayNameAttribute,它就没有声称可以使用CF。

属性等应该已经 可用 在设计时设置;你只是没有相同水平的能力来调整设计时体验。

顺便说一下,ulong在大多数代码中都很少见,但这不是问题。