winform兩個窗體之間傳值(C#委託事件實現)

  • 點擊form2窗體按鈕返回結果20賦值給form1窗體文本框
    form1代碼如下:
     //計算按鈕事件
            private void Button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.f += F2_f;     //註冊事件,只能+=
                f2.ShowDialog();
            }
    
            private int F2_f(int arg)
            {
                textBox1.Text = arg.ToString();
                return 1;
            }
     
    
    form2代碼如下:
     public event Func<int, int> f;  //聲明事件委託變量f,類型爲int,返回值爲int
    
    //form2按鈕事件
            private void Button1_Click(object sender, EventArgs e)
            {
                //給form1窗體的文本框賦值20
                if (f != null)
                {
                    f(20);
                }
            }
     
    
    完成
    補充:因爲此例子並沒有使用返回值,所以可以使用泛型委託Action<int>
    轉載於:https://www.cnblogs.com/micc/p/10673328.html
    委託
  • 定義一個委託,聲明一個委託變量,然後讓變量去做方法應該做的事。
  • 委託是一個類型
  • 事件是委託變量實現的
  • 經典例子:兩個winform窗體傳值
  1. 定義兩個窗體:form1和form2
  2. form1上有一個文本框,一個按鈕
  3. 點擊計算按鈕調出form2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章