如何访问父类中的标签表单用户控件?

Posted

技术标签:

【中文标题】如何访问父类中的标签表单用户控件?【英文标题】:how to access a label form user control in Parent class? 【发布时间】:2010-05-24 12:07:31 【问题描述】:

我有一个继承 System.Web.UI.UserControl 的类 UserControlBase,我的用户控件继承了 UserControlBase 类。 UserControlBase 有一些在所有用户控件中都会用到的通用函数。

我也想将错误显示功能放到 UserControlBase 中,这样我就不必在所有用户控件中声明和管理它。错误将显示在用户控件中的某些标签中。问题是如何在函数的 UserControlBase 中访问用户控件中的标签?我不想将标签作为参数传递。

【问题讨论】:

【参考方案1】:

在您的 UserControl Base 中,仅公开标签的文本值:

public abstract class UserControlBase : System.Web.UI.UserControl

    private Label ErrorLabel  get; set; 
    protected string ErrorMessage
    
        get  return ErrorLabel.Text; 
        set  ErrorLabel.Text = value; 
    
    protected override void OnInit(EventArgs e)
    
        base.OnInit(e);
        ErrorLabel = new Label();
        Controls.Add(ErrorLabel);
    
    //... Other functions

在继承此的用户控件中:

public partial class WebUserControl1 : UserControlBase

    protected void Page_Load(object sender, EventArgs e)
    
        try
        

        
        catch (Exception)
        
            ErrorMessage = "Error";   //Or whatever

        

    


【讨论】:

以上是关于如何访问父类中的标签表单用户控件?的主要内容,如果未能解决你的问题,请参考以下文章

无法从Javascript访问Master页面上的用户控件中的标签

form表单中的label标签

C# 使用表单加载其他用户控件并访问基本控件或属性

如何在 C# 中隐藏包含用户控件的表单?

如何在用户控件上激活 Click 事件?

如何从winform中将值传递给用户控件?