C#窗体间传值的两种实现方法
目录
- 方法1:
- 方法2:
新建两个窗体,假设窗体三可以跳转到窗体四,即窗体三为父窗体,窗体四为子窗体。
窗体三拖动两个Label和TextBox,再拖动一个Button组件。
窗体四同理,但不需要ButtoMGQsSOOn组件。


组件拖动完之后,再写代码部分。
方法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();
}
}
父窗体Forjsm3:
private void button1_Click(object sender, EventArgs e)
{
// 获取Form3中TextBox的值(假设Form3的TextBox名为textBox1)
string valueFromForm3 = tjavascriptextBox1.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; }
publi编程客栈c Form4()
{
InitializeComponent();
// 【可选】手动绑定Load事件(若设计器没自动绑定)
this.Load += new EventHandler(Form4_Load);
}
// 2. 在Form4加载时赋值(php时机关键:必须在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正常显示
}
上述只是实现一个传值,两个传值同理。
结果:


结束。
到此这篇关于C#窗体间传值的两种实现方法的文章就介绍到这了,更多相关C#窗体间传值内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
加载中,请稍侯......
精彩评论