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

电子说

1.3w人已加入

描述

2 利用WinForm调用类库

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

LabVIEW

在引用上面,右键选择添加引用

LabVIEW

点击浏览,选择之前生成的dll,

LabVIEW

点击确定按钮,完成引用的添加。

LabVIEW

在调用库时,在开头位置添加命名空间的引用,此处为using  EventTesting;

在界面中,进行两个功能的测试。1 )在界面内输入字符串,点击按钮,触发事件2)实现一个简单函数Add,在执行时,触发事件,代码如下:

LabVIEW

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)填写输入,点击按钮,触发了事件,弹出提示框。

LabVIEW

2)输入a=1,b=2,事件触发,得到结果。

LabVIEW

LabVIEW

3 在LabVIEW中,调用事件

1)选择构造器节点

LabVIEW

2)浏览选择生成的dll,选择事件类。

LabVIEW

3)选择事件回调,建立一个回调函数,函数里面是将触发事件的字符串显示到界面的控件中。

LabVIEW

LabVIEW

4)同样是做两组测试,一个直接触发,另一个通过Add函数间接触发。前面板如下:

LabVIEW

触发程序:

LabVIEW

Add程序:

LabVIEW

5)执行测试。触发的测试如下:

执行Add的测试如下:

LabVIEW

利用C#编写事件相关的类库,在WinForm和LabVIEW中进行测试,并描述相关程序的调用方法。

1 编写事件的相关类库

新建项目,先利用C#编写.NET Framework类库。

LabVIEW

这个类库主要用于展示事件的定义和触发。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文件。

LabVIEWLabVIEW

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分