C# 简单实现子窗体向父窗体传值有多种方法,下面介绍两种常用的方法。
方法一:使用属性
- 在子窗体中定义一个属性,用于存储需要传递的值。
public partial class ChildForm : Form
{
private string _value;
public string Value
{
get { return _value; }
set { _value = value; }
}
// ...
}
- 在父窗体中打开子窗体,并设置子窗体的属性值。
private void btnOpenChildForm_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
childForm.Value = "Hello, World!";
childForm.ShowDialog();
}
- 在子窗体的关闭事件中,将属性值传回给父窗体。
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
private void ChildForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.DialogResult == DialogResult.OK)
{
ParentForm parentForm = (ParentForm)this.Owner;
parentForm.SetTextBoxValue(this.Value);
}
}
- 在父窗体中定义一个方法,用于接收子窗体传回的值。
public void SetTextBoxValue(string value)
{
textBox1.Text = value;
}
方法二:使用事件
- 在子窗体中定义一个事件,并在需要传值的地方触发该事件。
public partial class ChildForm : Form
{
public delegate void ValueChangedEventHandler(object sender, ValueChangedEventArgs e);
public event ValueChangedEventHandler ValueChanged;
private void btnOk_Click(object sender, EventArgs e)
{
ValueChangedEventArgs args = new ValueChangedEventArgs();
args.Value = "Hello, World!";
ValueChanged?.Invoke(this, args);
this.Close();
}
}
public class ValueChangedEventArgs : EventArgs
{
public string Value { get; set; }
}
- 在父窗体中打开子窗体,并订阅子窗体的 ValueChanged 事件。
private void btnOpenChildForm_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
childForm.ValueChanged += ChildForm_ValueChanged;
childForm.ShowDialog();
}
private void ChildForm_ValueChanged(object sender, ValueChangedEventArgs e)
{
textBox1.Text = e.Value;
}
以上两种方式都可以实现子窗体向父窗体传值,根据具体情况选择适合的方式即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#简单实现子窗体向父窗体传值的方法 - Python技术站