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

}

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

结果:

结束。

相关推荐
用户44884667106017 小时前
.NET进阶——深入理解线程(1)同步异步与单线程多线程的区分
c#·.net
编程乐趣17 小时前
qdrant-dotnet:官方提供的开源 .NET 客户端库,用于与 Qdrant 向量搜索引擎操作!
c#·.net
SmoothSailingT17 小时前
C#——单例模式
开发语言·单例模式·c#
Lv117700817 小时前
Visual Studio 中的字符串
ide·笔记·c#·visual studio
Lv117700817 小时前
Visual Studio中的 var 和 dynamic
ide·笔记·c#·visual studio
wuguan_18 小时前
C#之List数组
开发语言·c#·list
工程师00718 小时前
C# 反射与泛型深度结合详解
c#·反射·泛型
feifeigo12318 小时前
C#中实现控件拖动功能
开发语言·c#
曹牧18 小时前
C#:List<string>类型的集合转换成用逗号分隔的字符串
开发语言·c#·list
fengfuyao98518 小时前
基于C# WinForm的收银管理系统实现
开发语言·c#