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


  • 委托
  • 定義一個委托,聲明一個委托變量,然后讓變量去做方法應該做的事。
  • 委托是一個類型
  • 事件是委托變量實現的
  • 經典例子:兩個winform窗體傳值
  1. 定義兩個窗體:form1和form2
  2. form1上有一個文本框,一個按鈕
  3. 點擊計算按鈕調出form2
  4. 點擊form2窗體按鈕返回結果20賦值給form1窗體文本框
  5. form1代碼如下:
  6.  //計算按鈕事件
            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;
            }

     

  7. form2代碼如下:
  8.  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);
                }
            }

     

  9. 完成
  10. 補充:因為此例子並沒有使用返回值,所以可以使用泛型委托Action<int>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM