C#子窗體獲取父窗體TextBox框的值實現(xiàn)方式
更新時間:2025年10月29日 08:48:48 作者:Smooth_開水同學(xué)
文章描述了在C#中通過構(gòu)造函數(shù)和公共屬性兩種方法實現(xiàn)窗體間傳遞數(shù)據(jù)的過程,父窗體通過按鈕點擊事件獲取子窗體的文本框值,并通過構(gòu)造函數(shù)或公共屬性將值傳遞給子窗體,子窗體在加載時接收并處理傳遞的值,顯示在文本框中
C#子窗體獲取父窗體TextBox框的值
新建兩個窗體,假設(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é)束
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python設(shè)計模式編程中的備忘錄模式與對象池模式示例
這篇文章主要介紹了Python設(shè)計模式編程中的備忘錄模式與對象池模式,文中分別舉了表單和線程的相關(guān)示例,需要的朋友可以參考下2016-02-02
c# Selenium爬取數(shù)據(jù)時防止webdriver封爬蟲的方法
這篇文章主要介紹了c# Selenium爬取數(shù)據(jù)時防止webdriver封爬蟲的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2021-01-01

