2 利用WinForm調(diào)用類(lèi)庫(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)入的類(lèi)庫(kù) namespace WindowsFormsApp1 { public partial class Form1 : Form { private EventPublisher publisher; // 聲明 publisher 作為類(lèi)級(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,選擇事件類(lèi)。

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)的類(lèi)庫(kù),在WinForm和LabVIEW中進(jìn)行測(cè)試,并描述相關(guān)程序的調(diào)用方法。
1 編寫(xiě)事件的相關(guān)類(lèi)庫(kù)
新建項(xiàng)目,先利用C#編寫(xiě).NET Framework類(lèi)庫(kù)。

這個(gè)類(lèi)庫(kù)主要用于展示事件的定義和觸發(fā)。EventPublisher類(lèi)包含了一個(gè)自定義事件MyEvent,并且在Add方法中演示了如何觸發(fā)事件。其他應(yīng)用程序可以訂閱這個(gè)事件,并在事件觸發(fā)時(shí)執(zhí)行相應(yīng)的操作,以便處理事件相關(guān)的信息。
using System;
namespace EventTesting
{
// 1. 定義事件參數(shù)類(lèi)
public class MyEventArgs : EventArgs
{
public string Message { get; }
public MyEventArgs(string message)
{
Message = message;
}
}
// 2. 定義包含事件的類(lèi)
public class EventPublisher
{
// 定義事件,使用 EventHandler 委托,事件參數(shù)類(lèi)型是 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)注
2010文章
3680瀏覽量
343333
發(fā)布評(píng)論請(qǐng)先 登錄
LabVIEW調(diào)用C#編寫(xiě)的.NET類(lèi)庫(kù)
玩轉(zhuǎn)C#/LABVIEW,斯撩
LabVIEW視覺(jué)模塊怎么與C#聯(lián)合編程
LABVIEW通過(guò)C#調(diào)用halcon算子
labview 動(dòng)態(tài)調(diào)用 C# 生成的dll
labview調(diào)用C#延時(shí)消除問(wèn)題
金橙子打標(biāo)卡labview打標(biāo)開(kāi)發(fā)沒(méi)頭緒?c#封裝成dll后labview調(diào)用真香!
C#知識(shí)類(lèi)庫(kù)

LabVIEW與C# 注冊(cè)事件相關(guān)方法
評(píng)論