目录
- C#子窗体获取父窗体TextBox框的值
- 方法1
- 方法2
- 结果
- 总结
C#子窗体获取父窗体TextBox框的值
新建两个窗体,假设窗体三可以跳转到窗体四,即窗体三为父窗体,窗体四为子窗体。
窗体android三拖动两个Label和TextBox,再拖动一个Button组件。
窗体四同理,但不需要Button组件。


组件拖动完之后,再写代码部分。
方法1
子窗体Form4:
public partial class Form4 : Form
{
// 【关键】定义带参数的构造函数,用于接收Form3传递的值
public Form4(string form3Text) // 参数名可自定义,如form3Text
{
InitializeComponent(); // 必须保留,窗体初始化用
// 将Form3传递的值赋值给Form4的TextBox
textBox1.Text = form3Text; // 假设Form4的TextBox名为textBox1
}
public Form4()
{
InitializeComponent();
}
}
父窗体Form3:
private void button1_Click(object sender, EventArgs e)
{
// 获取Form3中TextBox的值(假设Form3的TextBox名为textBox1)
string valueFromForm3 = textBox1.Text;
// 创建Form4实例,通过构造函数传递值
Form4 form4 = new Form4(valueFjavascriptromForm3); // 这里的参数就是Form4构造函数的form3Text
// 显示Form4
form4.Show(); // 或 form4.ShowDialog();
}
方法2
子窗体Form4:
public partial class Form4 : Form
{
// 1. 确保属性是public(关键,否则Form3无法访问)
public string Form3Value { get; set; }
public Form4()
{
InitializeComponent();
// 【可选】手动绑定Load事件(若设计器没自动绑定)android
this.Load += new EventHandler(Form4_Load);
}
// 2. 在Form4加载时赋值(时机关键:必须在Form4显示前完成)
private void Form4_Load(object sender, EventArgs e)
{
// 给textBox1赋值,同时处理空值(避免显示空白)
textBox1.Text = Form3Value ?? "未接收到数据";
}
}
}
父窗体Form3:
private void button1_Click(object sender, EventArgs e)
{
// 1. 先验证Form3的textBox1有值(避免传空)
if (string.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show("Form3的textBox1请先输入数字!");
return;
}
// 2. 创建Form4实例,传递值
Form4 form4 = new Form4();
fopythonrm4.Form3Value = textBox1.Text; //js 确保这里传的是Form3的textBox1值
// 3. 显示Form4(用Show或ShowDialog都可以)
form4.Show(); // 不要用Hide()!确保Form4正常显示
}
上述只是实现一个传值,两个传值同理。
结果


结束
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
加载中,请稍侯......
精彩评论