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< MyEventArgs > 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
+关注
关注
2013文章
3681浏览量
344312
发布评论请先 登录
LabVIEW视觉模块怎么与C#联合编程
LABVIEW通过C#调用halcon算子
labview 动态调用 C# 生成的dll
labview调用C#延时消除问题
金橙子打标卡labview打标开发没头绪?c#封装成dll后labview调用真香!
C#知识类库

LabVIEW与C# 注册事件相关方法
评论