精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LabVIEW與C# 注冊事件相關方法

lvxisi ? 來源:lvxisi ? 作者:lvxisi ? 2023-10-09 17:48 ? 次閱讀

2 利用WinForm調用類庫

在解決方案下面,新建WinForm工程

wKgaomUeCSSAPbSkAAE7dGUmgFc745.png

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

wKgZomUeCSOAT2YPAACEO_I2p6Y872.png

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

wKgZomUeCSOAKXH9AAAiqs_-0uI086.png

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

wKgaomUeCSOARrAxAAAikchJHtg001.png

在調用庫時,在開頭位置添加命名空間的引用,此處為using EventTesting;

在界面中,進行兩個功能的測試。1 )在界面內輸入字符串,點擊按鈕,觸發事件2)實現一個簡單函數Add,在執行時,觸發事件,代碼如下:

wKgZomUeCSSAbeqNAAAyhyDxTQc224.png

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)填寫輸入,點擊按鈕,觸發了事件,彈出提示框。

wKgZomUeCSSAZza2AAB1zxdUsk0937.png

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

wKgZomUeCSSAZza2AAB1zxdUsk0937.png

wKgaomUeCSSAYa99AAAuIfjDT3I282.png

3 在LabVIEW中,調用事件

1)選擇構造器節點

wKgaomUeCSSAeY7PAAFetJA2gfM616.png

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

wKgaomUeCSSAXHdkAAB0Z4kMWGQ068.png

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

wKgZomUeCSSALjUmAABlPOE38xs584.png

wKgZomUeCSSASJ-JAADu7Kr7jHc348.png

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

wKgaomUeCSSAGOzIAADbTiqSPTc526.png

觸發程序:

wKgaomUeCSSABpMcAADbTiqSPTc048.png

Add程序:

wKgZomUeCSSAMprHAADqsR5CBVY244.png

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

執行Add的測試如下:

wKgZomUeCSSAPW6YAACtNvZI6hQ535.png

利用C#編寫事件相關的類庫,在WinForm和LabVIEW中進行測試,并描述相關程序的調用方法。

1 編寫事件的相關類庫

新建項目,先利用C#編寫.NET Framework類庫。

wKgZomUeCNKAdsrjAAE6qtkQaXE764.png

這個類庫主要用于展示事件的定義和觸發。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文件。

wKgZomUeCP2AEpfOAABpcdKZCkI987.pngwKgaomUeCP2AY6D2AACHfqi8JjQ659.png

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • LabVIEW
    +關注

    關注

    1963

    文章

    3652

    瀏覽量

    322407
收藏 人收藏

    評論

    相關推薦

    LabVIEW調用C#編寫的.NET類庫

    本文主要是LabVIEW無法調用回調函數dll的問題的解決方法,也介紹了LabVIEW調用C#庫的方法
    的頭像 發表于 09-06 17:43 ?5740次閱讀
    <b class='flag-5'>LabVIEW</b>調用<b class='flag-5'>C#</b>編寫的.NET類庫

    LabVIEW視覺模塊怎么與C#聯合編程

    我今天看到一家美國供應商寫的C#程序,調用的是LabVIEW Vision。但是電腦沒有安裝LabVIEW,只安裝了LabVIEW Engine。我看了NI官網,寫的是
    發表于 06-30 23:24

    LABVIEW通過C#調用halcon算子

    本人看過不少LABVIEW直接調用HALCON的例子,感覺不如調用C#速度快,方便簡潔。今天就把本人的經驗分享一下。第一次發帖。。。。首先打開HALCON 例如:我們要把下面的算子轉換
    發表于 02-18 10:54

    Labview 調用C#封裝halcon庫

    Labview 調用C#封裝halcon庫,內存釋放能做到最好
    發表于 08-30 15:37

    labview 動態調用 C# 生成的dll

    目的: 用labview動態調用C#生成的dll問題:目前知道可以用.net的構造器調用,但是該方式不像“調用庫函數節點”那樣可以在運行過程中指定某個路徑下的dll調用。所以希望可以獲知通過“調用庫函數節點”調用C#生成dll的
    發表于 01-04 15:47

    labview調用C#延時消除問題

    采用了截圖中的C#編制.dll文件調用方式,發現其中大約由100+ms的延時無法消除,求問能否由方法消除該延時。Ps:同樣的代碼用labview實現,運行時間
    發表于 01-17 14:46

    金橙子打標卡labview打標開發沒頭緒?c#封裝成dll后labview調用真香!

    對接會面臨很多數據類型和指針的調用問題。labview如何調用?我們的方法是直接用c#封裝dll后提供labview調用。初始化與反初始化函數名]返回值: 通用錯誤碼備注:]使用條件:
    發表于 07-26 01:18

    C#知識類庫

    C#知識類庫:C#注釋符.txt編輯器技巧.txt窗體加載錯誤碼.txt如何設置Path.txt如何在IDE輸入命令行參數.txt顯示行號.txt重新向IIS注冊asp.net.txt
    發表于 12-26 12:14 ?53次下載
    <b class='flag-5'>C#</b>知識類庫

    LabVIEWC語言接口的方法

    摘要介紹了一種LabVIEWC 語言接口的方法,由實例證明,該方法高效、易行,是增強LabVIEW整體功能的一條有效的途徑。關鍵詞虛擬儀器
    發表于 01-17 21:54 ?82次下載

    C#教程之注冊注冊機制

    C#教程之注冊注冊機制,很好的C#資料,快來學習吧。
    發表于 04-21 09:52 ?17次下載

    LabVIEW外部程序(C和matlab)接口相關資料

    LabVIEW外部程序(C和matlab)接口相關資料LabVIEW外部程序(C和matlab)接口相關
    發表于 08-22 15:24 ?0次下載

    《Visual C# 2008程序設計經典案例設計與實現》---

    《Visual C# 2008程序設計經典案例設計與實現》---動態設置注冊表是否可運行
    發表于 02-07 12:29 ?0次下載

    《Visual C# 2005開發技術》C#程序設計基礎

    《Visual C# 2005開發技術》C#程序設計基礎
    發表于 02-07 15:11 ?0次下載

    LABVIEW調用C# DLL的實例分享

    LABVIEW調用C# DLL的實例分享
    發表于 01-04 11:20 ?105次下載

    LabVIEW的編程之道—事件注冊和取消注冊方法

    我在一個帖子里碰到這樣一個問題,在LabVIEW中取消一個已經注冊事件或再次注冊事件呢?然后就有了這篇文章。
    的頭像 發表于 10-31 11:29 ?5921次閱讀