2010-11-15 108 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