如何将文本框信息从一个用户控件获取到另一个
本文关键字:用户 一个 控件 获取 另一个 文本 信息 | 更新日期: 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();
}
}
现在,当第一个控件中的值发生更改时,您可以在第二个控件中设置值。