C#窗體間傳值的兩種實現(xiàn)方法
新建兩個窗體,假設(shè)窗體三可以跳轉(zhuǎn)到窗體四,即窗體三為父窗體,窗體四為子窗體。
窗體三拖動兩個Label和TextBox,再拖動一個Button組件。
窗體四同理,但不需要Button組件。


組件拖動完之后,再寫代碼部分。
方法1:
子窗體Form4:
public partial class Form4 : Form
{
// 【關(guān)鍵】定義帶參數(shù)的構(gòu)造函數(shù),用于接收Form3傳遞的值
public Form4(string form3Text) // 參數(shù)名可自定義,如form3Text
{
InitializeComponent(); // 必須保留,窗體初始化用
// 將Form3傳遞的值賦值給Form4的TextBox
textBox1.Text = form3Text; // 假設(shè)Form4的TextBox名為textBox1
}
public Form4()
{
InitializeComponent();
}
}父窗體Form3:
private void button1_Click(object sender, EventArgs e)
{
// 獲取Form3中TextBox的值(假設(shè)Form3的TextBox名為textBox1)
string valueFromForm3 = textBox1.Text;
// 創(chuàng)建Form4實例,通過構(gòu)造函數(shù)傳遞值
Form4 form4 = new Form4(valueFromForm3); // 這里的參數(shù)就是Form4構(gòu)造函數(shù)的form3Text
// 顯示Form4
form4.Show(); // 或 form4.ShowDialog();
}方法2:
子窗體Form4:
public partial class Form4 : Form
{
// 1. 確保屬性是public(關(guān)鍵,否則Form3無法訪問)
public string Form3Value { get; set; }
public Form4()
{
InitializeComponent();
// 【可選】手動綁定Load事件(若設(shè)計器沒自動綁定)
this.Load += new EventHandler(Form4_Load);
}
// 2. 在Form4加載時賦值(時機關(guān)鍵:必須在Form4顯示前完成)
private void Form4_Load(object sender, EventArgs e)
{
// 給textBox1賦值,同時處理空值(避免顯示空白)
textBox1.Text = Form3Value ?? "未接收到數(shù)據(jù)";
}
}
}父窗體Form3:
private void button1_Click(object sender, EventArgs e)
{
// 1. 先驗證Form3的textBox1有值(避免傳空)
if (string.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show("Form3的textBox1請先輸入數(shù)字!");
return;
}
// 2. 創(chuàng)建Form4實例,傳遞值
Form4 form4 = new Form4();
form4.Form3Value = textBox1.Text; // 確保這里傳的是Form3的textBox1值
// 3. 顯示Form4(用Show或ShowDialog都可以)
form4.Show(); // 不要用Hide()!確保Form4正常顯示
}
上述只是實現(xiàn)一個傳值,兩個傳值同理。
結(jié)果:


結(jié)束。
到此這篇關(guān)于C#窗體間傳值的兩種實現(xiàn)方法的文章就介紹到這了,更多相關(guān)C#窗體間傳值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實現(xiàn)windows form限制文本框輸入的方法
這篇文章主要介紹了C#實現(xiàn)windows form限制文本框輸入的方法,涉及C#限制文本框輸入的技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
C# Winform下載文件并顯示進度條的實現(xiàn)代碼
本來是要研究怎樣判斷下載完成,結(jié)果找到這個方法,可以在這個方法完成之后提示下載完成,需要的朋友可以參考下2014-07-07

