C#窗体—子窗体获取父窗体TextBox框的值

新建两个窗体,假设窗体三可以跳转到窗体四,即窗体三为父窗体,窗体四为子窗体。

窗体三拖动两个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(valueFromForm3); // 这里的参数就是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事件(若设计器没自动绑定)

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();

form4.Form3Value = textBox1.Text; // 确保这里传的是Form3的textBox1值

// 3. 显示Form4(用Show或ShowDialog都可以)

form4.Show(); // 不要用Hide()!确保Form4正常显示

}

上述只是实现一个传值,两个传值同理。

结果:

结束。

相关推荐
光泽雨16 分钟前
c#文件结构
c#
南無忘码至尊2 小时前
Unity学习90天-第2天-认识键盘 / 鼠标输入(PC)并实现WASD 移动,鼠标控制物体转向
学习·unity·c#·游戏开发
William_cl2 小时前
C# ASP.NET 分层架构实战:BLL (Service) 业务层从入门到封神(规范 + 避坑)
架构·c#·asp.net
qq_454245034 小时前
图数据标准化与智能去重框架:设计与实现解析
数据结构·架构·c#·图论
CSharp精选营4 小时前
C# 如何减少代码运行时间:7 个实战技巧
性能优化·c#·.net·技术干货·实战技巧
hhh3u3u3u17 小时前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
加号317 小时前
【C#】实现沃德普线光控制器通信控制(附完整源码)
开发语言·c#
lzhdim18 小时前
SharpCompress:跨平台的 C# 压缩与解压库
开发语言·c#
~plus~20 小时前
.NET 8 C# 委托与事件实战教程
网络·c#·.net·.net 8·委托与事件·c#进阶
beyond谚语21 小时前
接口&抽象类
c#·接口隔离原则·抽象类