C# 委託,在多窗體資料傳遞的使用
阿新 • • 發佈:2020-08-09
- </pre> 在委託中,單播委託就是隻能呼叫一個方法;委託中還有另一種方法,改方法能夠實現呼叫多個方法,稱為多播委託, 方式就是“+=”,實現呼叫多個方法,也可以用“-=”將固定方法去掉。下面接著上個文章,我們來實現多窗體的通訊。 <p></p><p>主窗體</p> <pre name="code" class="csharp">namespace MoreContact
- {
- /// <summary>
- /// 委託定義
-
/// </summary>
- public delegate void MoreContactDelegate(string word);
- public partial class FrmMain : Form
- {
- //宣告委託
- MoreContactDelegate Message;
- public FrmMain()
- {
- InitializeComponent();
- //窗體例項化
- FrmOther1 f1 = new FrmOther1();
- FrmOther2 f2 = new FrmOther2();
-
FrmOther3 f3 = new FrmOther3();
- f1.Show();
- f2.Show();
- f3.Show();
- //呼叫委託變數與方法聯絡到一起
- Message = f1.Receive;
- Message += f2.Receive;
- Message += f3.Receive;
- }
- private string word;
- //通過單擊呼叫委託實現固定的方法
- private void button1_Click(object sender, EventArgs e)
- {
- word = textBox1.Text;
- Message(word);
- }
- private void button2_Click(object sender, EventArgs e)
- {
- word = "";
- Message(word);
- textBox1.Text = "";
- }
- }
- }
從窗體1-3程式都是一樣:
- <pre name="code" class="csharp">namespace MoreContact
- {
- public partial class FrmOther1 : Form
- {
- public FrmOther1()
- {
- InitializeComponent();
- }
- //定義方法
- public void Receive(string word)
- {
- textBox1.Text = word;
- }
- }