如何将文本框信息从一个用户控件获取到另一个

本文关键字:用户 一个 控件 获取 另一个 文本 信息 | 更新日期: 2023-09-27 18:00:35

我的windows窗体应用程序中有两个用户控件。在第一个用户控件中,我有一个"文本框"和一个"保存"按钮
我在另一个用户控件中有"文本框"
当我点击第一个用户控件中的"保存"按钮时,无论用户控件中"文本框"中的值是多少,都必须显示在另一个用户控件"文本框中"。

我试过这样的

namespace project
{
    public partial class ucSample : UserControl
    {
    private double transferVolume;
    public double TransferVolume
    {
        get { return transferVolume; }
        set { transferVolume = value; }
    }
    public ucSample()
    {
        InitializeComponent();
    }
    private void btnSave_Click(object sender, EventArgs e)
    {
        TransferVolume = double.Parse(txtSamplevolume.Text);
       }
    }
}

在另一个用户控件中,我试图编写如下所示的逻辑。

namespace project
{
    public partial class ucSettings : UserControl
    {
         ucSample samplevolume = new ucSample();
         public ucSettings()
         {
             InitializeComponent();
         }
         private void  txtvolumeMin_TextChanged(object sender, EventArgs e)
         {
             txtvolumeMin.Text = samplevolume.TransferVolume.ToString();
         }
    }
}

请任何人帮助我在这里犯了什么错误。我正在使用财产来转移价值。我搞不清楚错误是什么。或者任何其他最好的方法。

如何将文本框信息从一个用户控件获取到另一个

看起来代码颠倒了。假设第一个控件中的文本框名为foo(因为我们没有看到该代码),还假设表单上的ucSettings控件的实例名为ucSettingsInstance:

ucSample控制中:

public event EventHandler TextChanged;
private void foo_TextChanged(object sender, EventArgs e)
{
    if (this.TextChanged != null) { this.TextChanged(sender, e); }
}

在您的表单中消费新事件:

private void ucSettingsInstance_TextChanged(object sender, EventArgs e)
{
    ucSettingsInstance.MinimumVolume = ucSampleInstance.TransferVolume;
}

现在我们需要向ucSettings:添加一个新属性

public double MinimumVolume
{
    get { return minimumVolume; }
    set
    {
        minimumVolume = value;
        txtVolumnMin.Text = minimumVolume.ToString();
    }
}

现在,当第一个控件中的值发生更改时,您可以在第二个控件中设置值。