Ваше мероприятие плохо реализовано, хотя я не уверен на 100%, что это является причиной вашей проблемы.Я просто попробовал следующее, и это сработало для меня.Я создал проект DLL в VB и добавил следующий код:
Public Class Class1
Public Shared Event MissingSnapshots As EventHandler
Protected Shared Sub OnMissingSnapshots(e As EventArgs)
RaiseEvent MissingSnapshots(Nothing, e)
End Sub
End Class
Это стандартный шаблон для объявления и вызова события, за исключением того, что вы обычно используете Me
вместо Nothing
в качестве отправителянапример, события.Кроме того, поскольку вы не можете переопределить метод Shared
, нет смысла объявлять метод OnMissingSnapshots
Overridable
и действительно нет смысла объявлять его Protected
.Это, вероятно, путь:
Public Shared Event MissingSnapshots As EventHandler
Private Shared Sub OnMissingSnapshots(e As EventArgs)
RaiseEvent MissingSnapshots(Nothing, e)
End Sub
Public Shared Sub RaiseMissingSnapshots()
OnMissingSnapshots(EventArgs.Empty)
End Su
Затем я добавил проект приложения C # WinForms к тому же решению и сослался на проект VB.Я смог добавить следующий код без проблем, в том числе с Intellisense:
using System;
using System.Windows.Forms;
using ClassLibrary1;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Class1.MissingSnapshots += Class1_MissingSnapshots;
}
private void Class1_MissingSnapshots(object sender, EventArgs e)
{
}
}
}