2 利用WinForm調(diào)用類庫(kù)
在解決方案下面,新建WinForm工程
在引用上面,右鍵選擇添加引用
點(diǎn)擊瀏覽,選擇之前生成的dll,
點(diǎn)擊確定按鈕,完成引用的添加。
在調(diào)用庫(kù)時(shí),在開(kāi)頭位置添加命名空間的引用,此處為using EventTesting;
在界面中,進(jìn)行兩個(gè)功能的測(cè)試。1 )在界面內(nèi)輸入字符串,點(diǎn)擊按鈕,觸發(fā)事件2)實(shí)現(xiàn)一個(gè)簡(jiǎn)單函數(shù)Add,在執(zhí)行時(shí),觸發(fā)事件,代碼如下:
using System; using System.Windows.Forms; using EventTesting;//導(dǎo)入的類庫(kù) namespace WindowsFormsApp1 { public partial class Form1 : Form { private EventPublisher publisher; // 聲明 publisher 作為類級(jí)別的字段 public Form1() { InitializeComponent(); publisher = new EventPublisher(); // 在初始化時(shí)創(chuàng)建 EventPublisher 實(shí)例 publisher.MyEvent += HandleEvent; } private static void HandleEvent(object sender, MyEventArgs e) { MessageBox.Show($"執(zhí)行結(jié)果: {e.Message}"); } private void addBtn_Click(object sender, EventArgs e) { //將a、b的值傳入Add函數(shù),并觸發(fā) HandleEvent事件 textBox1.Text = publisher.Add((int)a.Value, (int)b.Value).ToString(); } private void RaiseEvent_Click(object sender, EventArgs e) { publisher.RaiseEvent(SetStr.Text); } } }
執(zhí)行情況:
1)填寫(xiě)輸入,點(diǎn)擊按鈕,觸發(fā)了事件,彈出提示框。
2)輸入a=1,b=2,事件觸發(fā),得到結(jié)果。
3 在LabVIEW中,調(diào)用事件
1)選擇構(gòu)造器節(jié)點(diǎn)
2)瀏覽選擇生成的dll,選擇事件類。
3)選擇事件回調(diào),建立一個(gè)回調(diào)函數(shù),函數(shù)里面是將觸發(fā)事件的字符串顯示到界面的控件中。
4)同樣是做兩組測(cè)試,一個(gè)直接觸發(fā),另一個(gè)通過(guò)Add函數(shù)間接觸發(fā)。前面板如下:
觸發(fā)程序:
Add程序:
5)執(zhí)行測(cè)試。觸發(fā)的測(cè)試如下:
執(zhí)行Add的測(cè)試如下:
利用C#編寫(xiě)事件相關(guān)的類庫(kù),在WinForm和LabVIEW中進(jìn)行測(cè)試,并描述相關(guān)程序的調(diào)用方法。
1 編寫(xiě)事件的相關(guān)類庫(kù)
新建項(xiàng)目,先利用C#編寫(xiě).NET Framework類庫(kù)。
這個(gè)類庫(kù)主要用于展示事件的定義和觸發(fā)。EventPublisher類包含了一個(gè)自定義事件MyEvent,并且在Add方法中演示了如何觸發(fā)事件。其他應(yīng)用程序可以訂閱這個(gè)事件,并在事件觸發(fā)時(shí)執(zhí)行相應(yīng)的操作,以便處理事件相關(guān)的信息。
using System; namespace EventTesting { // 1. 定義事件參數(shù)類 public class MyEventArgs : EventArgs { public string Message { get; } public MyEventArgs(string message) { Message = message; } } // 2. 定義包含事件的類 public class EventPublisher { // 定義事件,使用 EventHandler 委托,事件參數(shù)類型是 MyEventArgs public event EventHandler MyEvent; // 觸發(fā)事件的方法 public void RaiseEvent(string message) { // 創(chuàng)建事件參數(shù)對(duì)象 MyEventArgs args = new MyEventArgs(message); // 觸發(fā)事件 MyEvent?.Invoke(this, args); } public int Add(int a, int b) { //在調(diào)用此函數(shù)時(shí),觸發(fā)事假 int sum = a + b; RaiseEvent(sum.ToString()); return sum; } } }
選擇“生成”或“重新生成”,生成dll文件。
審核編輯 黃宇
-
LabVIEW
+關(guān)注
關(guān)注
1970文章
3654瀏覽量
323309
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論