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

}

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

结果:

结束。

相关推荐
初九之潜龙勿用20 小时前
C# 操作Word模拟解析HTML标记之背景色
开发语言·c#·word·.net·office
时光追逐者21 小时前
使用 MWGA 帮助 7 万行 Winforms 程序快速迁移到 WEB 前端
前端·c#·.net
老骥伏枥~1 天前
【C# 入门】程序结构与 Main 方法
开发语言·c#
全栈师1 天前
java和C#的基本语法区别
java·开发语言·c#
钰fly1 天前
联合编程(加载单个工具,ini读写,图片读写,setting存储)
c#
FuckPatience1 天前
C# 对象初始化器对属性赋值vs构造函数里对属性赋值
c#
m0_748233171 天前
C语言vsC#:核心差异全解析
c语言·开发语言·c#
MyBFuture1 天前
C# 关于联合编程基础
开发语言·c#·visual studio·vision pro
Sunsets_Red1 天前
单调队列优化dp
c语言·c++·算法·c#·信息学竞赛
故事不长丨1 天前
《C#委托与事件深度解析:区别、联系与实战应用》
开发语言·c#·委托·事件·event