五、 基础知识:使用Attribute来订制属性窗口的显示
控制显示的机制和用IDL定义的组件是一样的,不过是增加了元数据特性。控制显示使用最普遍的特性是BrowsableAttribute。默认状态下,属性窗口显示对象中定义的所有的公开的、可读的(即public、有get或者set方法的)属性,并且把他们放在“杂项(Misc)”类别中。下面是一个简单的组件例子:
public class SimpleComponent : System.ComponentModel.Component
{
private string data = "(none)";
private bool dataValid = false;
public string Data
{
get
{
return data;
}
set
{
if (value != data)
{
dataValid = true;
data = value;
}
}
}
public bool IsDataValid
{
get
{
// perform some check on the data
//
return dataValid;
}
}
}
下图是这个例子在属性窗口中的显示:
图1.显示在属性窗口中的简单组件
在这个例子中,SimpleComponent有两个属性:Data和IsDataValid。实际上,由于IsDataValid是只读的,因此显示在这里并没有多大意义,设计人员在设计状态没有必要知道这个属性的值。因此,我们给他加上BrowsableAttribute特性让属性窗口不显示他。
[Browsable(false)]
public bool IsDataValid
{
get
{
// perform some check on the data
//
return dataValid;