如果屏蔽掉继承的不需要的属性?

骑车的娃儿 2005-03-06 11:09:23
自己做的控件怎么才能屏蔽继承Control的属性,只留下自己需要的属性?
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hamadou 2005-03-06
  • 打赏
  • 举报
回复
继承自control类,那么就意味着继承了他所有的属性和方法啊!
应该是做不到吧!呵呵!
骑车的娃儿 2005-03-06
  • 打赏
  • 举报
回复
解决了,多谢fangxinggood(JustACoder)兄 的提示
骑车的娃儿 2005-03-06
  • 打赏
  • 举报
回复
因为我需要在程序中使用PropertyGrid控件供用户修改属性(这儿不想去用DataGrid),但是真正需要用户修改并且最后要保存的属性只有几个,而其它的属性都用不上,如果不屏蔽,会造成用户的误会。
但是一个一个属性的屏蔽就太麻烦了,属性太多了,哪位高手有更好的解决方案?不胜感激,
骑车的娃儿 2005-03-06
  • 打赏
  • 举报
回复
关键不要的属性太多了,真正需要的只有几个,但是又不能不继承。难道只能一个一个的去重写吗?有没有效率高点的方法?
cushat 2005-03-06
  • 打赏
  • 举报
回复
把不要的东西从写一下做成private
机器人 2005-03-06
  • 打赏
  • 举报
回复
可以通过<Browsable(False)> _ 使继承来的用户自定义控件在【属性】窗口隐藏某些属性。例如,自定义控件不能用作可滚动的容器,因此不应该在【属性】窗口中显示AutoScroll,AutoScrollMargins,AutoScrollPosition和DockPadding items等属性。可以通过隐藏这些基类的属性(Shadows)并添加一个<Browsable(False)>特性来实现:
<Browsable(False)> _
Shadows Property AutoScroll() As Boolean
Get
'并不真正需要委托给内部的用户控件
End Get
Set(Byval Value As Boolean)
'并不真正需要委托给内部的用户控件
End Set
End Property
注意,尽管可以很容易地在【属性】窗口中隐藏一个属性,但是根据继承规则,却不能在自定义控件的编程界面中完全隐藏一个用户控件的属性。然而,可以通过代码使程序在运行时访问该属性时,引发一个异常。
<Browsable(False)> _
Shadows Property AutoScroll() As Boolean
Get
If Not Me.DesignMode Then
Throw New NotImplementedException()
End If
End Get
Set(Byval Value As Boolean)
If Not Me.DesignMode Then
Throw New NotImplementedException()
End If
End Set
End Property
ofei 2005-03-06
  • 打赏
  • 举报
回复
这样的话没必要从 Control继承了

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧