如何在C#中的父用户控件标签上显示字符串消息?

如何在C#中的父用户控件标签上显示字符串消息?,c#,user-controls,C#,User Controls,我的应用程序中有许多用户控件。其中一些是其他控件的父控件。每个用户控件都有用于显示消息的标签。我想编写一个函数,如下所示: public void ShowMessageInParent(UserControl control,string msg) { //get 1st parent control and show message on its label. } 我该怎么做呢?以下内容适用于W

我的应用程序中有许多用户控件。其中一些是其他控件的父控件。每个用户控件都有用于显示消息的标签。我想编写一个函数,如下所示:

public void ShowMessageInParent(UserControl control,string msg)
        { 
            //get 1st parent control and show message on its label.                   
        }

我该怎么做呢?

以下内容适用于WPF或WinForms-正如您所说,谈论ASP.NET已经太晚了:

我将创建一个事件
StatusMessageChanged
,其对应类派生自
EventArgs
。如果要更改消息,请调用事件。如果父控件已附加到事件,则它可以计算参数并显示消息

public class StatusMessageChangedEventArgs : EventArgs
{
    public StatusMessageChangedEventArgs(string message)
    {
        Message = message;
    }

    public string Message
    {
        get;
        private set;
    }
}

public event<StatusMessageChangedEventArgs> StatusMessageChanged;

protected void OnStatusMessageChanged(string message)
{
    if (StatusMessageChanged != null)
        StatusMessageChanged(this, new StatusMessageChangedEventArgs(message));
}
公共类StatusMessageChangedEventArgs:EventArgs
{
公共状态消息ChangedEventArgs(字符串消息)
{
消息=消息;
}
公共字符串消息
{
得到;
私人设置;
}
}
公共事件状态发生变化;
受保护的无效OnStatusMessageChanged(字符串消息)
{
如果(StatusMessageChanged!=null)
StatusMessageChanged(此,新的StatusMessageChangedEventArgs(消息));
}

我认为您编写了一个CustomUserControl witch,其中包含一个label控件

如果是这样,你应该使用

control.Parent.Controls.Find("Label", false);

1.从给定控件和access label controls Text属性获取父控件以设置所需的文本。2.您可能需要以某种方式访问默认为私有的父级标签控件。在父控件中引入一个方法,该方法接受字符串或公开标签控件。这是web、wpf还是winform?最佳方法取决于要显示的消息类型。这是在子用户控件中的事件处理程序中,我建议使用一个自定义事件,您可以在子用户控件中引发该事件,并在父用户控件中处理该事件。通过这种方式,您可以避免硬链接usercontrols,这样它们仍然可以重用,并且可以在不嵌套的情况下工作。请注意,父级通常是控制器,可以直接访问其子级,但反之亦然。它的asp.net Usercontrol。我正在处理asp.net Usercontrol。根据需要,每个用户控件都有不同的asp.net控件。请您发布一些代码,有代码吗?通过witch,我们可以了解更多关于你情况的细节