我使用Browsable(false)
属性从属性网格中隐藏属性。它还删除了aspx页面中属性的intellisense。
有没有办法在aspx页面中显示属性的intellisense?
财产代码
public new string Height
{
get{ return m_height; }
set{ m_height = value; }
}
注意
将类型从string
更改为Unit
有效。但我不允许将Height
的类型更改为Unit
。因为这是一个突破性的变化
使用Browsable(true)
有效但在属性网格中更改Height
的值会引发错误匹配"。
我尝试过的事情
1)使用PreFilterProperties
ControlDesigner
覆盖方法
智能感知正在出现但如果我在aspx页面中更改了Height属性的值,则设计器不会更新控件。在调试时,我发现设计师没有看到该属性。
//Height will be removed from property window
protected override void PreFilterProperties(System.Collections.IDictionary properties)
{
base.PreFilterProperties(properties);
//Do not show Height in property grid
properties["Height"] = TypeDescriptor.CreateProperty(typeof(MyControl), (PropertyDescriptor)properties["Height"], BrowsableAttribute.No);
}
请分享您的建议