2010-11-15 106 views
1

在捕获事件的情况下,VB.NET中是否有方法在代码片段上复制C#行为?VB.NET中的代码片段快捷键?

I.E. C:

Btn.Click+= 

然后双击tab。为btn.click事件创建一个处理程序。

+0

听起来很愚蠢,但通常它适用于在线记录的事件:谷歌它和从示例复制/粘贴处理程序声明。我知道,这并没有回答这个问题,但比悬停事件成员几乎不读它的工具提示更好,并且成为诸如'dte.Events.CommandEvents.BeforeExecute'之类的简单解决方法' – 2015-11-05 03:34:40

回答

5

在C#中,只能使用+=明确地连接事件。 VB相当于AddHandler

但VB也让你connect events implicitly using the Handles keyword。注意VB事件处理比C#更灵活。

有几种方法可以使用Handles自动创建事件处理程序代码。

  1. 在设计视图中,只需双击按钮即可。

  2. 或者,在设计视图中再次:

    一个。在按钮的属性窗口中,单击“闪电”查看事件。

    b。双击Click事件。

  3. 或者,在代码视图,你可以在窗口

    一个顶部使用两下拉列表。选择左侧的按钮。

    b。选择右边的Click事件。

编辑:2010年VB.Net,你可以处理事件与statement lambdas。例如:

AddHandler b.Click, _ 
    Sub(sender As Object, e As EventArgs) 
    MsgBox("Button Clicked") 
    'insert more complex logic here 
    End Sub 

好了,也许你知道有关处理匿名方法隐含的事件,你仍然决定你真的需要从AddHandler线了明确的本地方法的所有时间。也许有一个支持它的第三方加载项。也许CodeRush呢,我不知道(如果有人知道,请留下评论)。或者你甚至可以创建自己的加载项。

+0

我会从列表中选择。看起来我忘了我所有可怕的VB6技能......我现在太宠坏了。 – Faruz 2010-11-15 14:03:19

3

奇怪的是VB.NET团队没有在Visual Studio中实现这样的功能。

+0

@Frauz,我明白你的挫败感:-) – 2010-11-15 07:41:03

+0

@法鲁兹,@达林。没有明确连接事件的捷径。但在VB中,[隐式连接事件]更为常见(http://stackoverflow.com/questions/2547033/what-is-the-difference-between-events-in-vb-and-c/2547083#2547083)。这可能是为什么没有显式方法的捷径。 [我的答案列出了一些快捷方式]隐式方法(http://stackoverflow.com/questions/4182177/code-snippets-shortkey-in-vb-net/4183940#4183940)。 – MarkJ 2010-11-15 11:42:05

+0

@法鲁兹,@达林。你越了解*任何*语言,就越不会感到沮丧。 C#和VB之间只有[很少区别](http://visualstudiomagazine.com/columns/article.aspx?editorialsid=2894),它们[很容易学会](http://stackoverflow.com/q/ 15639分之1337253)。 – MarkJ 2010-11-15 11:43:17