我在Visual Studio 2008中工作,我希望在打開文件時運行Edit> Outlining> Collapse to Definitions來運行。如果在此之後所有地區都擴大了,那將會很好。我嘗試了Kyralessa在關於The Problem with Code Folding的評論中提供的代碼,並且該代碼非常適合作爲必須手動運行的宏。我試圖通過將以下代碼EnvironmentEvents模塊在宏IDE擴展這個宏作爲一個事件:EnvironmentEvent宏沒有完成
Public Sub documentEvents_DocumentOpened(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentOpened
Document.DTE.ExecuteCommand("Edit.CollapsetoDefinitions")
DTE.SuppressUI = True
Dim objSelection As TextSelection = DTE.ActiveDocument.Selection
objSelection.StartOfDocument()
Do While objSelection.FindText("#region", vsFindOptions.vsFindOptionsMatchInHiddenText)
Loop
objSelection.StartOfDocument()
DTE.SuppressUI = False
End Sub
然而,這似乎並沒有當我從我的解決方案打開一個文件做任何事VS.爲了測試這個宏是否正在運行,我在該子程序中輸入了MsgBox()
語句,並注意到Document.DTE.ExecuteCommand("Edit.CollapsetoDefinitions")
之前的代碼運行正常,但在該行之後似乎沒有任何結果。當我在子例程中調試並設置了一個斷點時,我會按F10繼續下一行,一旦ExecuteCommand
行運行,控件就會離開子例程。儘管如此,這條線似乎什麼也不做,即它不會摺疊輪廓。
我也試過在子程序中只用DTE.ExecuteCommand("Edit.CollapsetoDefinitions")
但沒有運氣。
這個問題試圖獲得與this one相同的最終結果,但我在問我在事件處理宏中可能做錯了什麼。
聖潔的廢話,它的作品!我不得不在我的EnvironmentEvents宏中爲`Timer`和`Timeout`添加一個`Imports System.Threading`行,但它起作用!我現在打開我的CS文件,大約一秒之後,我的所有定義都崩潰了。謝謝! – 2009-07-10 13:52:11