狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 委托實例(跨窗體操作控件)

admin
2017年5月27日 14:58 本文熱度 7564

今天研究了一下,在C#里面卻是可以不用自定義消息這么復雜的方法來實現跨窗體調用控件,C#有更好的辦法就是委托。

效果描述:有兩個窗體,FORM1(一個名為“打開form2”的button控件)和FORM2(一個名為“改變form1顏色“的button控件)。啟動時,FORM1中點擊button控件“打開form2””使FORM2顯示出來。點擊FORM2中的“改變form1顏色”后,Form1中顏色改變。

一、在Form2里面:
       首先聲明一個委托和委托實例
Form2類外

[csharp] view plain copy
  1. public delegate void ChangeFormColor(bool topmost);  

Form2類里

[csharp] view plain copy
  1. public event ChangeFormColor ChangeColor;  

Form2的按鈕事件中調用委托

[csharp] view plain copy
  1. private void button1_Click(object sender, EventArgs e)  
  2.         {  
  3.             ChangeColor(true);//執行委托實例  
  4.         }  


二、在Form1里面:
button控件“打開form2“的click事件中有下面的代碼:

[csharp] view plain copy
  1. {  
  2.     Form2 f = new Form2();  
  3.     f.ChangeColor += new ChangeFormColor(f_ChangeColor);  
  4.     f.Show();  
  5. }  

f.ChangeColor += new ChangeFormColor(f_ChangeColor);
這句最關鍵,你輸入到+=之后,按兩下Tab,他會自動給你生成回調函數,如下:

[csharp] view plain copy
  1. void f_ChangeColor(bool topmost)  
  2.         {  
  3.             this.BackColor = Color.LightBlue;  
  4.             this.Text = "改變成功";  
  5.         }  



 三、完整代碼

[csharp] view plain copy
  1. using System;  
  2. using System.Drawing;  
  3. using System.Windows.Forms;  
  4.   
  5. namespace 跨窗體調用控件  
  6. {  
  7.     public partial class Form1 : Form  
  8.     {  
  9.         public Form1()  
  10.         {  
  11.             InitializeComponent();  
  12.         }  
  13.         private void button1_Click(object sender, EventArgs e)  
  14.         {  
  15.             Form2 f = new Form2();  
  16.             f.ChangeColor += new ChangeFormColor(f_ChangeColor);  
  17.             f.Show();  
  18.         }  
  19.         void f_ChangeColor(bool topmost)  
  20.         {  
  21.             this.BackColor = Color.LightBlue;  
  22.             this.Text = "改變成功";  
  23.         }  
  24.     }  
  25. }  


 

[csharp] view plain copy
  1. using System;  
  2. using System.Windows.Forms;  
  3.   
  4. namespace 跨窗體調用控件  
  5. {  
  6.     public delegate void ChangeFormColor(bool topmost);  
  7.     public partial class Form2 : Form  
  8.     {  
  9.         public Form2()  
  10.         {  
  11.             InitializeComponent();  
  12.         }  
  13.         public event ChangeFormColor ChangeColor;  
  14.         private void button1_Click(object sender, EventArgs e)  
  15.         {  
  16.             ChangeColor(true);//執行委托實例  
  17.         }  
  18.     }  
  19. }  

 

最后再給大家介紹一種最簡單的C#跨窗體操作



該文章在 2017/5/27 14:58:41 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved