1. 程式人生 > 實用技巧 >C# 委託,在多窗體資料傳遞的使用

C# 委託,在多窗體資料傳遞的使用

  1. </pre> 在委託中,單播委託就是隻能呼叫一個方法;委託中還有另一種方法,改方法能夠實現呼叫多個方法,稱為多播委託, 方式就是“+=”,實現呼叫多個方法,也可以用“-=”將固定方法去掉。下面接著上個文章,我們來實現多窗體的通訊。 <p></p><p>主窗體</p> <pre name="code" class="csharp">namespace MoreContact
  2. {
  3. /// <summary>
  4. /// 委託定義
  5. /// </summary>
  6. public delegate void MoreContactDelegate(string word);
  7. public partial class FrmMain : Form
  8. {
  9. //宣告委託
  10. MoreContactDelegate Message;
  11. public FrmMain()
  12. {
  13. InitializeComponent();
  14. //窗體例項化
  15. FrmOther1 f1 = new FrmOther1();
  16. FrmOther2 f2 = new FrmOther2();
  17. FrmOther3 f3 = new FrmOther3();
  18. f1.Show();
  19. f2.Show();
  20. f3.Show();
  21. //呼叫委託變數與方法聯絡到一起
  22. Message = f1.Receive;
  23. Message += f2.Receive;
  24. Message += f3.Receive;
  25. }
  26. private string word;
  27. //通過單擊呼叫委託實現固定的方法
  28. private void button1_Click(object sender, EventArgs e)
  29. {
  30. word = textBox1.Text;
  31. Message(word);
  32. }
  33. private void button2_Click(object sender, EventArgs e)
  34. {
  35. word = "";
  36. Message(word);
  37. textBox1.Text = "";
  38. }
  39. }
  40. }
從窗體1-3程式都是一樣:
  1. <pre name="code" class="csharp">namespace MoreContact
  2. {
  3. public partial class FrmOther1 : Form
  4. {
  5. public FrmOther1()
  6. {
  7. InitializeComponent();
  8. }
  9. //定義方法
  10. public void Receive(string word)
  11. {
  12. textBox1.Text = word;
  13. }
  14. }