简体   繁体   English

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

[英]How to show string message on label of parent User control in C#?

I have many User controls in my application. 我的应用程序中有许多用户控件。 Among which some are parent control of others.Every User control has labels for show messages.I want to write a function which is some thing like below: 其中一些是其他的父控件。每个用户控件都有用于显示消息的标签。我想编写一个类似于以下内容的函数:

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

How can I do it? 我该怎么做?

The following will work for WPF or WinForms - as you stated too late that you're talking about ASP.NET: 以下内容适用于WPF或WinForms-正如您所说的谈论ASP.NET太晚了:

I'd create an event StatusMessageChanged with a corresponding class derived from EventArgs . 我将使用从EventArgs派生的相应类创建事件StatusMessageChanged If the message is to be changed, call the event. 如果要更改消息,请呼叫事件。 If the parent control has attached to the event, it can evaluate the arguments and show the message. 如果父控件已附加到事件,则它可以评估参数并显示消息。

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));
}

I think you wrote a CustomUserControl witch has a label control inside it. 我想您写了一个CustomUserControl巫婆,其中有一个标签控件。

If so you should use 如果是这样,您应该使用

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM