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

}

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

结果:

结束。

相关推荐
唐青枫1 小时前
C#.NET 集合表达式详解:新时代的集合初始化方式
c#·.net
hez20107 小时前
TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎
c#·.net·.net core·compiler
世洋Blog8 小时前
利用<<左移运算符优雅的设计游戏能力的任意组合和判断
游戏·unity·c#
曹牧9 小时前
C#中,#region和#endregion
开发语言·c#
czhc11400756639 小时前
c# 1121 构造方法
java·javascript·c#
在路上看风景11 小时前
2.3 C#装箱和拆箱
开发语言·c#
葛小白113 小时前
C#进阶14:C#全局路径规划算法_RRTstar
c#·路径规划·rrtstar算法
Tiger_shl14 小时前
SqlConnection、SqlCommand 和 SqlDataAdapter
开发语言·数据库·c#
yi碗汤园17 小时前
Visual Studio常用的快捷键
开发语言·ide·c#·编辑器·visual studio