C# WinForm 父窗体 子窗体 传值
C# WinForm 父窗体 子窗体 传值
本次示例效果如下:
Form1为父窗体(包含textBox1、button1)
Form2为子窗体(包含textBox2、button2)
父窗体给子窗体传值
==================
1.点击Form1的button1 打开Form2
父窗体给子窗体传值 可以调用重载子窗体的构造函数 直接传入相关数值
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(this.textBox1.Text);
frm2.Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public Form2(string strTextBox1Text)
{
InitializeComponent();
this.textBox2.Text = strTextBox1Text;
}
}
2.点击Form1的button1 打开Form2
并调用子窗体Form2的公开属性或方法 将Form1的textBox1的值设置给Form2的textBox2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.TextBox2Text = this.textBox1.Text;
frm2.Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public string TextBox2Text
{
set { this.textBox2.Text = value; }
get { return this.textBox2.Text; }
}
}
3.点击Form1的button1 打开Form2
在Form2_Load调用父窗体Form1的公开属性或方法 将Form1的textBox1的值设置给Form2的textBox2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string TextBox1Text
{
set { this.textBox1.Text = value; }
get { return this.textBox1.Text; }
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);//或 frm2.ShowDialog(this);
////或者
//Form2 frm2 = new Form2();
//frm2.Owner = this;
//frm2.Show();//或 frm2.ShowDialog();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
this.textBox2.Text = frm1.TextBox1Text;
}
}
子窗体给父窗体传值
==================
4.点击Form1的button1 打开Form2
再点击Form2的button2
在button2_Click事件中 通过this.Owner将Form2的textBox2的值设置给Form1的textBox1
并关闭Form2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);//或 frm2.ShowDialog(this);
////或者
//Form2 frm2 = new Form2();
//frm2.Owner = this;
//frm2.Show();//或 frm2.ShowDialog();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
//注意 如果textBox1是放在panel1中的 则先找panel1 再找textBox1
((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
this.Close();
}
}
5.点击Form1的button1 打开Form2
再点击Form2的button2
在button2_Click事件中 通过this.Owner及调用父窗体Form1的公开属性或方法
将Form2的textBox2的值设置给Form1的textBox1
并关闭Form2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string TextBox1Text
{
set { this.textBox1.Text = value; }
get { return this.textBox1.Text; }
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);//或 frm2.ShowDialog(this);
////或者
//Form2 frm2 = new Form2();
//frm2.Owner = this;
//frm2.Show();//或 frm2.ShowDialog();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
frm1.TextBox1Text = this.textBox2.Text;
this.Close();
}
}
最新文章
- UIActivityViewController 系统社交化 共享
- AJAX 请求区分 $_SERVER['HTTP_X_REQUESTED_WITH'] 小解
- C#集合--数组
- 【转】c++中引用的全方位解读
- [技巧]把Excel里的数据插入到数据库里的方法
- C#语法糖之第六篇: 泛型委托- Predicate<;T>;、Func<;T>;
- HTML中插入视频
- 在C#中调用API获取网络信息和流量
- 金蝶盘点机条码数据採集器PDA,WIFI已经连接,可是PDA应用程序还是网络初始化不成功?
- Knockout Mvc Compoment FrameSet
- 设置TextView显示的文字可以复制
- Java基础知识回顾之五 ----- 多线程
- git使用方法收藏
- python之工厂函数
- pygame-KidsCanCode系列jumpy-part17-mask-collide碰撞检测
- JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)
- 【iCore4 双核心板_uC/OS-II】例程四:软件定时器
- python-找出100以内的质数
- 小技巧 - CSS中:hover调试
- 给 layui upload 带每个文件的进度条, .net 后台代码
热门文章
- BEGIN_MESSAGE_MAP(Caccess_test_1Dlg, CDialogEx)
- openssl之EVP系列之8---EVP_Digest系列函数具体解释
- 用DX9画三角形,三个顶点要求
- GO项目目录
- Xamarin绑定微信SDK 实现分享功能
- ios 如何对UITableView中的内容进行排序
- nginx于tomcat项目整合(拆分静态文件)
- k8s滚动升级
- 知问前端——html+jq+jq_ui+mySql+ajax
- 忽略UserInterfaceState.xcuserstate