Visual Studio Intellisense不显示事件[重复]

问题描述 投票:2回答:2

我正在写一个使用VB.NetTeamSpeak SDK程序。它附带了C#示例,我毫不费力地将它们转换为VB

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

enter image description here

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

enter image description here

请注意,显示的属性和方法是相同的,只是无法选择事件。我使用相同的“使用”用于C#和“进口”用于VB以引用TeamSpeak.Sdk.Client。我有一个工作的几百行的VB程序,成功实现了TeamSpeak SDK,所以几乎一切都正常。只是现在我想要添加事件处理我遇到了麻烦。

我接下来应该尝试什么?

c# vb.net visual-studio visual-studio-2017 intellisense
2个回答
4
投票

这个C#代码的VB等价物:

myObject.SomeEvent += SomeMethod;

这是:

AddHandler myObject.SomeEvent, AddressOf SomeMethod

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


-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关键字声明“Control”:

Public WithEvents Button1 As New Button
© www.soinside.com 2019 - 2024. All rights reserved.