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();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-548713/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 窗體傳值 父子窗體傳值情況 c# 1231C#
- C# 如何重複呼叫父窗體中的子窗體C#
- WinForm下實現子窗體ORM
- winform動態生成窗體並實現傳值返回ORM
- winform之在主窗體中不顯示子窗體的選單欄ORM
- C#中實現窗體間傳值方法C#
- 附例項!實現iframe父窗體與子窗體的通訊
- WinForm禁止窗體調整ORM
- Winform在主窗體載入前彈出登入窗體ORM
- layer父介面呼叫子彈窗的方法和獲取子彈窗的元素值總結
- C#窗體--滑鼠事件C#事件
- winform窗體常規設定記錄ORM
- C#實現窗體全屏C#
- C#窗體--Label、Picturebox、LinkLabelC#
- c# 窗體自適應C#
- 父往子傳,子往父傳,以及平行傳值
- vs2022中windows窗體winform沒有窗體設計器問題處理WindowsORM
- 解決winform窗體重複建立問題ORM
- layui 子彈窗獲取父頁面的引數傳參UI
- aardio 背景透明的3種方式(透明窗體1 webview2,透明窗體2-win-region-bitmap,透明窗體3-winform-transparent-color)WebViewORM
- C# winForm 視窗跳轉後關閉上一個視窗的方法C#ORM
- Winform窗體圓角以及描邊完美解決方案ORM
- 關於父視窗獲取跨域iframe子視窗中的元素跨域
- Winform中設定窗體縮小到右下角通知區域並點選後再次顯示窗體ORM
- windows窗體Windows
- 元件中 子給父傳值元件
- 父元件向子元件傳值元件
- VUE父傳子,子傳父Vue
- C#中關閉子視窗而不釋放子視窗物件的方法C#物件
- winform 跨視窗點選ORM
- Winform窗體的屬性頁沒有顯示篩選框ORM
- C#機房重構之註冊窗體C#
- c# 設定MdiClient窗體的背景圖片C#client
- C# WPF 跳轉到第二個窗體C#
- WPF 透明窗體
- 窗體事件 1130事件
- .NET混合開發解決方案12 網頁JS呼叫C#方法訪問WinForm或WPF窗體網頁JSC#ORM
- WPF窗體中嵌入/使用WinForm類/控制元件(基於.NET Core)ORM控制元件
- vue子元件向父元件傳遞值Vue元件