2 利用WinForm調用類庫
在解決方案下面,新建WinForm工程

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

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

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

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

using System; using System.Windows.Forms; using EventTesting;//導入的類庫 namespace WindowsFormsApp1 { public partial class Form1 : Form { private EventPublisher publisher; // 聲明 publisher 作為類級別的字段 public Form1() { InitializeComponent(); publisher = new EventPublisher(); // 在初始化時創建 EventPublisher 實例 publisher.MyEvent += HandleEvent; } private static void HandleEvent(object sender, MyEventArgs e) { MessageBox.Show($"執行結果: {e.Message}"); } private void addBtn_Click(object sender, EventArgs e) { //將a、b的值傳入Add函數,并觸發 HandleEvent事件 textBox1.Text = publisher.Add((int)a.Value, (int)b.Value).ToString(); } private void RaiseEvent_Click(object sender, EventArgs e) { publisher.RaiseEvent(SetStr.Text); } } }
執行情況:
1)填寫輸入,點擊按鈕,觸發了事件,彈出提示框。

2)輸入a=1,b=2,事件觸發,得到結果。


3 在LabVIEW中,調用事件
1)選擇構造器節點

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

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


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

觸發程序:

Add程序:

5)執行測試。觸發的測試如下:
執行Add的測試如下:

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

這個類庫主要用于展示事件的定義和觸發。EventPublisher類包含了一個自定義事件MyEvent,并且在Add方法中演示了如何觸發事件。其他應用程序可以訂閱這個事件,并在事件觸發時執行相應的操作,以便處理事件相關的信息。
using System;
namespace EventTesting
{
// 1. 定義事件參數類
public class MyEventArgs : EventArgs
{
public string Message { get; }
public MyEventArgs(string message)
{
Message = message;
}
}
// 2. 定義包含事件的類
public class EventPublisher
{
// 定義事件,使用 EventHandler 委托,事件參數類型是 MyEventArgs
public event EventHandler MyEvent;
// 觸發事件的方法
public void RaiseEvent(string message)
{
// 創建事件參數對象
MyEventArgs args = new MyEventArgs(message);
// 觸發事件
MyEvent?.Invoke(this, args);
}
public int Add(int a, int b)
{
//在調用此函數時,觸發事假
int sum = a + b;
RaiseEvent(sum.ToString());
return sum;
}
}
}
選擇“生成”或“重新生成”,生成dll文件。


審核編輯 黃宇
-
LabVIEW
+關注
關注
2017文章
3688瀏覽量
347076
發布評論請先 登錄
LabVIEW視覺模塊怎么與C#聯合編程
LABVIEW通過C#調用halcon算子
labview 動態調用 C# 生成的dll
labview調用C#延時消除問題
金橙子打標卡labview打標開發沒頭緒?c#封裝成dll后labview調用真香!
C#知識類庫
LabVIEW與C# 注冊事件相關方法
評論