windows 表单应用程序中两个用户控件之间的交互

Interaction between two user controls in windows form application

我创建了两个名为 UserControl1UserControl2 的用户控件,UserControl1 包含 TextBox1UserControl2 包含 Button1。在 UserControl2 中,我想在单击 Button1 时从 UserControl1 获取 TextBox1.Text

这是相关代码: 在 UserControl1:

 public partial class UserControlA: UserControl
{
    public UserControlA()
    {
        InitializeComponent();
    }

    public string TexBoxText
    {
        get
        {
            return this.textBox1.Text;
        }
    }
}

UserControl2中:

 public partial class UserControlB: UserControl
{
    public UserControlB()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        //here is to get textbox1.text
    }
}

我该怎么办?

一个选项是将 UserControlA 实例传递给 UserControlB 的构造函数。

public partial class UserControlB: UserControl
{
    UserControlA userControlA;

    public UserControlB(UserControlA ucA)
    {
        userControlA = ucA;
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string myString = userControlA.TexBoxText;
    }
}

UserControl1中:

public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
    }
    public TextBox TextBox
    {
        get
        {
            return textBox1;
        }
    }
}

UserControl2中:

public partial class UserControl2 : UserControl
{
    private TextBox txt = null;
    public UserControl2()
    {
        InitializeComponent();
    }
    public TextBox TextBox
    {
        set
        {
            txt = value;
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (txt != null)
            MessageBox.Show(txt.Text);
    }
}

在上述控件的容器中:

uc2.TextBox = uc1.TextBox;