2 利用WinForm調(diào)用類庫
在解決方案下面,新建WinForm工程

在引用上面,右鍵選擇添加引用

點擊瀏覽,選擇之前生成的dll,

點擊確定按鈕,完成引用的添加。

在調(diào)用庫時,在開頭位置添加命名空間的引用,此處為using EventTesting;
在界面中,進(jìn)行兩個功能的測試。1 )在界面內(nèi)輸入字符串,點擊按鈕,觸發(fā)事件2)實現(xiàn)一個簡單函數(shù)Add,在執(zhí)行時,觸發(fā)事件,代碼如下:

using System; using System.Windows.Forms; using EventTesting;//導(dǎo)入的類庫 namespace WindowsFormsApp1 { public partial class Form1 : Form { private EventPublisher publisher; // 聲明 publisher 作為類級別的字段 public Form1() { InitializeComponent(); publisher = new EventPublisher(); // 在初始化時創(chuàng)建 EventPublisher 實例 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)填寫輸入,點擊按鈕,觸發(fā)了事件,彈出提示框。

2)輸入a=1,b=2,事件觸發(fā),得到結(jié)果。


3 在LabVIEW中,調(diào)用事件
1)選擇構(gòu)造器節(jié)點

2)瀏覽選擇生成的dll,選擇事件類。

3)選擇事件回調(diào),建立一個回調(diào)函數(shù),函數(shù)里面是將觸發(fā)事件的字符串顯示到界面的控件中。


4)同樣是做兩組測試,一個直接觸發(fā),另一個通過Add函數(shù)間接觸發(fā)。前面板如下:

觸發(fā)程序:

Add程序:

5)執(zhí)行測試。觸發(fā)的測試如下:
執(zhí)行Add的測試如下:

利用C#編寫事件相關(guān)的類庫,在WinForm和LabVIEW中進(jìn)行測試,并描述相關(guān)程序的調(diào)用方法。
1 編寫事件的相關(guān)類庫
新建項目,先利用C#編寫.NET Framework類庫。

這個類庫主要用于展示事件的定義和觸發(fā)。EventPublisher類包含了一個自定義事件MyEvent,并且在Add方法中演示了如何觸發(fā)事件。其他應(yīng)用程序可以訂閱這個事件,并在事件觸發(fā)時執(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ù)對象
MyEventArgs args = new MyEventArgs(message);
// 觸發(fā)事件
MyEvent?.Invoke(this, args);
}
public int Add(int a, int b)
{
//在調(diào)用此函數(shù)時,觸發(fā)事假
int sum = a + b;
RaiseEvent(sum.ToString());
return sum;
}
}
}
選擇“生成”或“重新生成”,生成dll文件。


審核編輯 黃宇
-
LabVIEW
+關(guān)注
關(guān)注
2010文章
3679瀏覽量
343022
發(fā)布評論請先 登錄
LabVIEW調(diào)用C#編寫的.NET類庫
玩轉(zhuǎn)C#/LABVIEW,斯撩
LabVIEW視覺模塊怎么與C#聯(lián)合編程
LABVIEW通過C#調(diào)用halcon算子
labview 動態(tài)調(diào)用 C# 生成的dll
labview調(diào)用C#延時消除問題
金橙子打標(biāo)卡labview打標(biāo)開發(fā)沒頭緒?c#封裝成dll后labview調(diào)用真香!
C#知識類庫

LabVIEW與C# 注冊事件相關(guān)方法
評論