0

我在扩展标准 WebControls.Button 控件时遇到问题。我需要覆盖 text 属性,但收到错误消息:

无法覆盖继承的成员“System.Web.UI.WebControls.Button.Text.get”,因为它未标记为虚拟、抽象或覆盖

我对 LinkBut​​ton 使用了以下代码,并且效果很好:

public class IconLinkButton : LinkButton
{
    private string _icon = "";
    public string Icon
    {
        get
        {
            return _icon;
        }
        set
        {
            _icon = value;
        }
    }

    public override string Text
    {
        get
        {
            return "<i class=\""+Icon+"\"></i> " + base.Text;
        }
        set
        {
            base.Text = value;
        }
    }
}

但是,对标准 Button 执行相同操作会引发我上面描述的错误。

public class IconButton : Button
{
    private string _icon = "";
    public string Icon
    {
        get
        {
            return _icon;
        }
        set
        {
            _icon = value;
        }
    }

    public virtual string Text
    {
        get
        {
            return "<i class=\"" + Icon + "\"></i> " + base.Text;
        }
        set
        {
            base.Text = value;
        }
    }
}

我怎样才能解决这个问题?

4

1 回答 1

3

这是因为LinkButton有一个virtualText 属性.. 而Button没有。

您可以使用以下方法完全隐藏基本功能new

public class IconButton : Button {
    public new string Text {
        // implementation
    }
}

使用new完全隐藏继承的成员。

于 2013-09-30T22:51:49.647 回答