从UserControl以一种形式设置StatusLabel文本

时间:2016-06-13 11:36:54

标签: c# winforms datagridview user-controls

我有一个Windows窗体(MainForm1),其中包含一个带有标签的ToolStrip(StatusLabel)。 MainForm1还包含一个用户控件(UserControl1)。用户控件包含一个按钮(Button1)。单击Button1时,它初始化DataGridView,但这并不重要。

在UserControl1中单击Button1时,我想在MainForms StatusLabel中显示文本。

但我不知道如何从一个UserControl到MainForm。

流程图描述了我希望它如何运作。

1 个答案:

答案 0 :(得分:0)

您可以在User Control

中通过创建活动来执行此操作
public event EventHandler<string> MessageHasSent;
public void SendMessage(string message)
{
    EventHandler<string> ms =  MessageHasSent;
    if (ms!= null)
    {
         ms(this,message);
    }
}

并且在你班级的每个地方都要举起这个活动。在你的情况下,你想通过点击按钮发送信息

public Button1_Click( object sender,EventArgs e)
{
     SendMessage("YourMessage");
}

并像其他事件一样使用它。在您的MainForm中使用UserControl的此事件。

public class MainForm:Form
{
    public MainForm()
    {
        UserControl1.MessageHasSent +=SetToolStripLabel;
    }
    public  SetToolStripLabel( object sender,string e)
    {
        //Set e to Label
    }
}