最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#窗體間傳值的兩種實(shí)現(xiàn)方法

 更新時(shí)間:2025年10月30日 09:17:09   作者:Smooth_開(kāi)水同學(xué)  
本文介紹了兩種在C#中實(shí)現(xiàn)窗體間傳值的方法,方法一中,子窗體Form4通過(guò)父窗體Form3的方法與父窗體通信,父窗體通過(guò)事件將數(shù)據(jù)傳遞給子窗體,方法二中,子窗體直接調(diào)用父窗體的方法,并傳遞數(shù)據(jù),兩種方法都實(shí)現(xiàn)了從父窗體向子窗體傳遞數(shù)據(jù)的功能,需要的朋友可以參考下

新建兩個(gè)窗體,假設(shè)窗體三可以跳轉(zhuǎn)到窗體四,即窗體三為父窗體,窗體四為子窗體。

窗體三拖動(dòng)兩個(gè)Label和TextBox,再拖動(dòng)一個(gè)Button組件。

窗體四同理,但不需要Button組件。

組件拖動(dòng)完之后,再寫(xiě)代碼部分。

方法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實(shí)例,通過(guò)構(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無(wú)法訪問(wèn))
        public string Form3Value { get; set; }

        public Form4()
        {
            InitializeComponent();

            // 【可選】手動(dòng)綁定Load事件(若設(shè)計(jì)器沒(méi)自動(dòng)綁定)
            this.Load += new EventHandler(Form4_Load);
        }

        // 2. 在Form4加載時(shí)賦值(時(shí)機(jī)關(guān)鍵:必須在Form4顯示前完成)
        private void Form4_Load(object sender, EventArgs e)
        {
            // 給textBox1賦值,同時(shí)處理空值(避免顯示空白)
            textBox1.Text = Form3Value ?? "未接收到數(shù)據(jù)"; 
        }
    }
}

父窗體Form3:

private void button1_Click(object sender, EventArgs e)
{
    // 1. 先驗(yàn)證Form3的textBox1有值(避免傳空)
    if (string.IsNullOrEmpty(textBox1.Text))
    {
        MessageBox.Show("Form3的textBox1請(qǐng)先輸入數(shù)字!");
        return;
    }

    // 2. 創(chuàng)建Form4實(shí)例,傳遞值
    Form4 form4 = new Form4();
    form4.Form3Value = textBox1.Text;  // 確保這里傳的是Form3的textBox1值

    // 3. 顯示Form4(用Show或ShowDialog都可以)
    form4.Show();  // 不要用Hide()!確保Form4正常顯示
}

上述只是實(shí)現(xiàn)一個(gè)傳值,兩個(gè)傳值同理。

結(jié)果:

結(jié)束。

到此這篇關(guān)于C#窗體間傳值的兩種實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)C#窗體間傳值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

集贤县| 沙雅县| 包头市| 合肥市| 和田县| 噶尔县| 玉溪市| 康定县| 右玉县| 句容市| 永吉县| 霍城县| 平定县| 潜江市| 南华县| 镇雄县| 潮州市| 辽宁省| 金川县| 万荣县| 中阳县| 水城县| 双峰县| 吉安县| 灌云县| 陆丰市| 太仆寺旗| 侯马市| 沙湾县| 云龙县| 磴口县| 岐山县| 五莲县| 崇文区| 盘山县| 六盘水市| 南阳市| 皋兰县| 灌南县| 平原县| 邛崃市|