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正常显示

}

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

结果:

结束。

相关推荐
bugcome_com14 分钟前
.NET 核心:Func 与 Action 委托(从入门到实战)
c#·.net
故事不长丨23 分钟前
C#数组深度解析:从基础语法到实战应用
开发语言·c#·数组·array
张人玉36 分钟前
C#WPF页面布局及其属性
开发语言·c#·wpf
翔云 OCR API11 小时前
发票查验接口详细接收参数说明-C#语言集成完整示例-API高效财税管理方案
开发语言·c#
虫小宝13 小时前
高佣金的返利平台性能压测:从单接口到全链路的性能瓶颈分析
c#·linq
故事不长丨13 小时前
C#集合:解锁高效数据管理的秘密武器
开发语言·windows·c#·wpf·集合·winfrom·字典
jghhh0115 小时前
基于C#实现与三菱FX系列PLC串口通信
开发语言·算法·c#·信息与通信
故事不长丨15 小时前
C#队列深度剖析:解锁高效编程的FIFO密码
visualstudio·c#·wpf·多线程·winfrom·队列·queue
bugcome_com16 小时前
C# 反射(Reflection)超全解析
c#
bjzhang7518 小时前
Dorisoy.AMS--一款采用C# WinForm框架+SQLite数据库的企业/机构资产管理解决方案
sqlite·c#·资产管理