C#中不同視窗之間傳遞值的兩種方法

來源:互聯網
上載者:User
        在.net中不同視窗之間傳值有很多種不同的方法,這裡給出兩種比較常用的方法:

        項目中有兩個表單,Form1和Form2,要實現的效果是點擊Form1中的Button1按鈕實現TextBox1和TextBox2中的值相加,然後把這個相加的值傳遞給Form2中的TextBox1,並在TextBox1中顯示出這個和值。        方法一:通過為表單類寫屬性來傳遞值                (1),在被傳遞值的表單(這裡是Form2)類裡面寫屬性                          private string str;//定義的私人變數        public string STR//為表單Form2定義的屬性
        {
            get { return str; }//讀
            set//寫
            {
                str = value;
            }
        }                (2),在Form2中把讀到的屬性賦給Form2中的TextBox1文字框                        private void Form2_Load(object sender, EventArgs e)        {
            textBox1.Text = str;
        }                (3),在Form1中的Button1的Click點擊事件中寫如下代碼                        private void button1_Click(object sender, EventArgs e)        {
            Form2 frm2 = new Form2();
            int a, b, sum;
            if (int.TryParse(textBox1.Text, out a) && int.TryParse(textBox2.Text, out b))
            {
                sum = a + b;
                frm2.STR = sum.ToString();
                frm2.ShowDialog();
            }
            else
            {
                frm2.STR = "輸入的為非數字型字串";
                frm2.ShowDialog();
            }
        }                 大功告成,在你的機子上運行下,是不是成功了?        方法二:通過為表單類寫建構函式來傳值                (1),在被傳遞值的表單(這裡是Form2)類裡面寫其建構函式,注意原來的建構函式不要修改它,我們在代碼塊裡面直接加入以下代碼即可。                        string str1, str2;//定義兩個私人變數        public Form2(TextBox tb1, TextBox tb2)//定義建構函式,tb1和tb2對應Form1中的TextBox1和TextBox2,以便傳值
        {
            InitializeComponent();//一定要加上。。。

            str1 = tb1.Text.ToString();//取文字框值
            str2 = tb2.Text.ToString();
            int a, b, sum;
            if (int.TryParse(str1, out a) && int.TryParse(str2, out b))//檢查文字框裡面的值是否可轉化為int型,傳回值為bool型,如果為真,則轉化為整型a和b
            {
                int sum = a + b;
                textBox1.Text = Convert.ToString(sum);
            }
            else
            {
                textBox1.Text = "輸入的為非數字型字串";
            }
        }                (2),在Form1中的Button1的Click事件中寫如下代碼                        private void button1_Click(object sender, EventArgs e)        {   
            Form2 frm2 = new Form2(textBox1, textBox2);
            frm2.ShowDialog();
        }                到這裡,第二種方法也完成了,是不是覺得很簡單?
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.