为什么我不能像隐藏属性一样隐藏继承的事件?

时间:2009-08-27 16:44:39

标签: c# asp.net

我有一个继承自UserControl类的usercontrol。我想向使用该类的任何人隐藏一些项目。

我可以隐藏属性......

public partial class userControls_MyControl : System.Web.UI.UserControl {

    private new bool EnableTheming {get; set;}
}

这有效地消除了它在编辑器的IntelliSense中的显示。

但是,当我对事件尝试相同的事情时,它们仍会出现......

public partial class userControls_MyControl : System.Web.UI.UserControl {

    private new EventHandler AbortTransaction { get; set; }
    private new EventHandler OnAbortTransaction {get;set;}
}

有没有办法真正隐藏一个事件?为什么上述不起作用?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您正在尝试隐藏不存在的属性。您需要使用事件语法: -

 private new event EventHandler AbortTransaction;

您可能想要使用EditorBrowserable属性并将事件公开,不要。这可能意味着外部代码可能会尝试附加到您的控件上的AbortTransaction,但继承的控制代码将无法看到它。

答案 1 :(得分:1)

尝试将EditorBrowsableAttribute(false)应用于您的活动:http://msdn.microsoft.com/en-us/library/system.componentmodel.editorbrowsableattribute.aspx