为了账号安全,请及时绑定邮箱和手机立即绑定

将 C# 库中的事件触发到 VB Winform 程序中

将 C# 库中的事件触发到 VB Winform 程序中

C#
江户川乱折腾 2021-10-24 19:36:40
我是一名 C# 程序员,并制作了一个 C# 库来处理 tcp/ip 聊天。现在我有必要从 Server VB Winform 程序中使用它。我很确定这是一个简单的解决方案问题,但我已经挣扎了好几天。所以在 C# 我有那个类:public class AsynchronousServer{    public AsynchronousServer()    {    }    public delegate void ChangedEventHandler(string strMessage);    public static event ChangedEventHandler OnNotification;    public static event ChangedEventHandler OnAnswerReceived;    ...}现在我必须专注于服务器程序:如果那个 VB 程序是在 C# 中,我会编写下面的代码,用于通过单击按钮连接服务器public partial class MainWindow : Window{    public MainWindow()    {        InitializeComponent();    }    private void btnStart_Click(object sender, RoutedEventArgs e)    {        AsynchronousServer.OnNotification += AsynchronousServer_OnNotification;        AsynchronousServer.OnAnswerReceived += AsynchronousServer_OnAnswerReceived;        AsynchronousServer.StartServer(tbxIpAddress.Text,tbxPort.Text);    }VB中的相同程序:Imports SocketLibrary    Public Class Form1    Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click        AsynchronousServer.OnNotification                       <--- member not present        AsynchronousServer.OnAnswerReceived                     <--- member not present        AsynchronousServer.StartServer(tbxIpAddress.Text, tbxPort.Text);<-----OK    End SubEnd Class问题是成员 AsynchronousServer.OnNotification 根本不存在,所以我无法添加事件。我知道我可能需要添加 WithEvents 关键字,但我可能无法成功。简而言之,我必须将该 VB winform 程序连接到我无法从 VB 类中看到的 C# 库事件。
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

我假设您从未使用过 VB,因此会回答您:
您需要使用AddHandler

AddHandler AsynchronousServer.OnNotification, AddressOf YourMethod

顺便说一句,恕我直言,静态事件非常糟糕。


查看完整回答
反对 回复 2021-10-24
  • 2 回答
  • 0 关注
  • 224 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信