Visual Studio Intellisense不显示事件

时间:2018-09-12 01:02:24

标签: c# vb.net visual-studio visual-studio-2017 intellisense

我正在编写一个使用VB.Net的{​​{1}}程序。它带有TeamSpeak SDK个示例,我毫不费力地将它们转换为C#

但是,我正在尝试为名为Connection的类实现事件处理程序。在VB中,当我在Connection变量后点击一个点时,C#显示一个包含所有选项的下拉列表:

enter image description here

但是当我处理VB代码(也在Intellisense中)时,做同样的事情不包括事件:

enter image description here

请注意,显示的属性和方法相同,只是无法选择事件。我对VS 2017使用了相同的“ using”,对C#使用了“导入”来引用VB。我有数百行有效的VB程序,该程序成功实现了TeamSpeak.Sdk.Client,所以几乎所有程序都在工作。直到现在,我想添加事件处理才遇到麻烦。

接下来我应该尝试什么?

2 个答案:

答案 0 :(得分:4)

此C#代码的VB等效项:

myObject.SomeEvent += SomeMethod;

是这个

AddHandler myObject.SomeEvent, AddressOf SomeMethod

如果您输入AddHandler关键字,则Intellisense将显示可用事件。对于C#代码,您可以在与属性或方法相同的上下文中选择一个事件,因此将它们一起显示是有意义的。在VB中,唯一可以使用事件的时间是在AddHandler语句中,因此您只会在该上下文中看到事件。

答案 1 :(得分:-1)

在VB中有两种连接事件的方法。 @jmcilhinney显示的AddHandler方法,或使用Handles关键字,如下所示:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'do something useful with the button click
End Sub

如果执行此操作,将在Handles关键字后获得Intellisense。 Sub的参数是可选的-如果您不使用sendere,请不要将其放在声明中

要使其正常工作,需要使用WithEvents关键字声明“控件”:

Public WithEvents Button1 As New Button