继承控件如何隐藏所继承的控件原来具有的属性

abcynic 2003-05-12 11:27:01
我的控件MyContrl1继承自System.Windows.Forms.RichTextBox,RichTextBox原来具有属性ContextMenu。我想在MyContrl1中建立一个固定的ContextMenu,所以想将此属性隐藏,让使用MyContrl1的用户无法更改ContextMenu属性。请问要怎样作?
...全文
56 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
juqiang 2003-05-12
  • 打赏
  • 举报
回复
如果需要隐藏parent类的属性,就不要继承了,最好用组合。
当然,你可以这么做:

public override ContextMenu{
get{//...}
set{//...}
}
juqiang 2003-05-12
  • 打赏
  • 举报
回复
楼主说的就是要不出现contextmenu呀。

可以在get的时候:this.ContextMenu = new ContextMenu();这样原来的就没有了
chainet 2003-05-12
  • 打赏
  • 举报
回复
up
timmy3310 2003-05-12
  • 打赏
  • 举报
回复
还有一种方法,你可以重载基类属性,在Get和Set中什么也不做,那么用户使用这个属性也得不到任何效果,如:

public override ContextMenu ContextMenu
{
get {
return null;
}
set {

}
}
timmy3310 2003-05-12
  • 打赏
  • 举报
回复
不可能隐藏的

对于基类的某些方法或者属性如果子类没有提供实现,那么可以:

public override ContextMenu ContextMenu
{
get {
throw NotSupportedException();
}
set {
throw NotSuppotedException();
}
}

NotSupportedException这个异常用来说明某个方法或者属性目前的实现并不支持
abcynic 2003-05-12
  • 打赏
  • 举报
回复
重载了,还是不能隐藏。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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