文章編號: 826931 - 上次校閱: 2007年5月11日 - 版次: 3.2

按一下 [自訂 Word CommandBarButton 物件不會引發事件

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

您可以建立 Microsoft Office Word 2007 文件或使用 Managed 程式碼副檔名的 Microsoft Office Word 2003 文件。您可以使用 Microsoft Visual Studio 工具 Microsoft Office 系統 2003 來建立 Managed 程式碼副檔名。 程式碼延伸其中一個內建 CommandBar 物件在 Word 中建立 CommandBarButton 物件。當您按一下此 CommandBarButton] 物件 Click 事件不會發生在 Managed 程式碼的副檔名。結果會是您無法判斷使用者嘗試存取您的自訂 CommandBarButton 物件。

發生的原因

CommandBarButton 物件的 Tag 屬性不設為一個值時,就會發生這個問題。

狀況說明

這種行為是經過設計規劃的。

其他相關資訊

Tag 屬性允許唯一地識別 CommandBarButton 物件的 Microsoft Office。 這是在 Word 中特別有用,因為 Word 會使用單一文件介面 (SDI)。SDI 允許每個文件視窗擁有自己的 commandbars 集。 因此,Microsoft 建議您永遠將 Tag 屬性設為您建立每個 CommandBarButton 物件的唯一字串。當您將您自己 CommandBarButton 物件加入至現有的 Word 命令列,例如功能表、 內容功能表和工具列,這點特別重要。

如果要重現問題的步驟

下列步驟會建立新的 CommandBarButton 物件從 Word 中的 [工具] 功能表。若要查看 Click 事件不會發生除非設定 CommandBarButton 物件的 Tag 屬性,請依照下列步驟執行:
  1. 啟動 Microsoft Visual Studio.NET 2003年。
  2. 在 [檔案] 功能表上指向 [新增],然後按一下 [專案]。
  3. 在 [專案類型] 清單中按一下 [Microsoft Office 系統專案,然後按一下 [Visual Basic 專案]。在 [範本] 清單中,按一下 Word 範本。新的專案 WordCommandBarTest,名稱然後按一下 [確定]

    Microsoft Office 專案精靈] 隨即出現。
  4. 在 [Microsoft Office 專案精靈] 中,按一下 [完成]
  5. 將下列類別層級的變數加入至 OfficeCodeBehind 類別。
    Private WithEvents oButton As Office.CommandBarButton
  6. 將下列程式碼加入至 ThisDocument_New 事件處理常式。
    ' CommandBar change applies only to the new document.
    ThisApplication.CustomizationContext = ThisDocument
    
    ' Obtain the Tools menu for Word.
    Dim toolsMenu As Office.CommandBarPopup = _
        CType(ThisApplication.CommandBars.FindControl(, 30007), _
        Office.CommandBarPopup)
    
    ' Add your new item to the Tools menu.
    oButton = _
        CType(toolsMenu.Controls.Add(Office.MsoControlType.msoControlButton), _
        Office.CommandBarButton)
    oButton.Caption = "My New Button"
    'oButton.Tag = "My New Button Tag"
  7. 將下列函式加入至 OfficeCodeBehind 類別。
    Private Sub oButton_Click(ByVal Ctrl As Microsoft.Office.Core.CommandBarButton, ByRef CancelDefault As Boolean) Handles oButton.Click
        MessageBox.Show("My New Button click!")
    End Sub
  8. 在 [建置] 功能表上按一下 [建置方案]。
  9. 在 [偵錯] 功能表上按一下 [開始]。

    從範本建立 Word 啟動和新的文件。
  10. 按一下 [工具] 功能表的 [在 Word 中,我新增的按鈕

    請注意,按鈕的 Click 事件不會啟動。
  11. 如果要解決這個問題,取消註解下行 ThisDocument_New 事件中的程式碼。
    'oButton.Tag = "My New Button Tag"
    現在當您結束 Word 然後您將方案重新執行您注意到我的新按鈕的 Click 事件會引發,如您預期的。

這篇文章中的資訊適用於:
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Visual Studio Tools for the Microsoft Office System version 2003
關鍵字:?
kbmt kbprb kbnofix KB826931 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:826931? (http://support.microsoft.com/kb/826931/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。