Návod: Vytváření místních nabídek pro záložky

Tento návod ukazuje, jak vytvořit místní nabídky pro Bookmark prvky v dokumentu úroveň přizpůsobení pro aplikaci Word.Když uživatel klepne pravým tlačítkem myši na text v záložce, místní nabídce se zobrazí a dává uživateli možnosti pro formátování textu.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu ve Wordu 2013 a ve Wordu 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Tento návod ilustruje následující úkoly:

  • Vytvoření projektu dokument aplikace Word v aplikaci Visual Studio.

  • Přidání textu a záložky do dokumentu v úrovni dokumentu projekt v době návrhu.

  • Vytvoření zástupce nabídky.

  • Kontrola překrývání záložky.

[!POZNÁMKA]

Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Požadavky

Chcete-li dokončit tento návod, potřebujete následující komponenty:

Vytváření projektu

První krok je vytvořit projekt dokumentu aplikace Word v aplikaci Visual Studio.

Chcete-li vytvořit nový projekt

  • Vytvoření projektu aplikace Word dokument s názvem Moje místní nabídce záložky.V dialogovém okně průvodce vyberte vytvořit nový dokument.Další informace naleznete v tématu Postupy: Vytváření projektů pro systém Office v prostředí Visual Studio.

    Visual Studio otevře nový dokument aplikace Word v designer a přidá Moje místní nabídce záložky projekt na Průzkumník řešení.

Přidání textu a záložky v dokumentu

Přidat text do dokumentu a pak přidejte dva překrývající se záložky.

Chcete-li přidat text do dokumentu

  • V dokumentu, který se zobrazí v Návrháři projektu zadejte následující text.

    Toto je příklad vytvoření místní nabídky po klepnutí pravým tlačítkem myši na text v záložce.

Přidat ovládací prvek záložky v dokumentu

  1. V nástrojů, ze Ovládací prvky aplikace Word tabulátoru, přetáhněte Bookmark ovládacího prvku do dokumentu.

    Přidat záložku ovládací dialogové okno.

  2. Vyberte slova "Vytvoření místní nabídky po klepnutí pravým tlačítkem myši na text" a potom klepněte na tlačítko OK.

    bookmark1je přidán do dokumentu.

  3. Přidat další Bookmark řízení se slovy "klepněte pravým tlačítkem myši na text v záložce".

    bookmark2je přidán do dokumentu.

    [!POZNÁMKA]

    Slova "klepněte pravým tlačítkem myši na text" jsou v obou bookmark1 a bookmark2.

Po přidání záložky v dokumentu v době návrhu Bookmark k vytvoření ovládacích prvků.Můžete ovládat několik událostí záložky.Můžete psát kód BeforeRightClick události záložky, aby se při kliknutí pravým tlačítkem na záložku text zobrazí místní nabídka.

Přidání příkazů místní nabídky

Přidání tlačítka do místní nabídky, která se zobrazí po klepnutí pravým tlačítkem myši dokument.

Chcete-li přidat příkazy místní nabídky

  1. Přidat XML pásu karet položky k projektu.Další informace naleznete v tématu Postupy: Začínáme s přizpůsobením pásu karet.

  2. V Průzkumník řešení, vyberte ThisDocument.cs nebo ThisDocument.vb.

  3. V řádku nabídek zvolte zobrazení, kód.

    ThisDocument otevře soubor třídy v editoru kódu.

  4. Přidejte následující kód, který ThisDocument třídy.Tento kód přepíše CreateRibbonExtensibilityObject metoda a vrátí XML pásu karet třídy pro aplikace sady Office.

    Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility
        Return New Ribbon1()
    End Function
    
    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        return new Ribbon1();
    }
    
  5. V Průzkumník řešení, vyberte soubor XML pásu karet.Podle výchozího nastavení je soubor XML pásu karet s názvem Ribbon1.xml.

  6. V řádku nabídek zvolte zobrazení, kód.

    Soubor xml pásu karet se otevře v editoru kódu.

  7. V editoru kódu nahraďte následující kód obsah souboru XML pásu karet.

    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="https://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
      <contextMenus>
        <contextMenu idMso="ContextMenuText">
          <button id="BoldButton" label="Bold" onAction="ButtonClick"        
               getVisible="GetVisible" />
          <button id="ItalicButton" label="Italic" onAction="ButtonClick" 
              getVisible="GetVisible"/>
        </contextMenu>
      </contextMenus>
    </customUI>
    

    Tento kód přidá dvě tlačítka do místní nabídky, která se zobrazí po klepnutí pravým tlačítkem myši dokument.

  8. V Průzkumník řešení, klepněte pravým tlačítkem myši ThisDocumenta potom klepněte na tlačítko Zobrazit kód.

  9. Prohlašují následující proměnné a proměnné záložky na úrovni třídy.

    Public selectedBookmark As Microsoft.Office.Tools.Word.Bookmark
    Public ShowBoldButton As String = False 
    Public ShowItalicButton As String = False 
    Public WordTrue As Integer = -1
    Public WordFalse As Integer = 0
    
    public Microsoft.Office.Tools.Word.Bookmark selectedBookmark;
            public bool showBoldButton = false;
            public bool showItalicButton = false;
            public int WordTrue = -1;
            public int WordFalse = 0;
    
  10. V Průzkumník řešení, vyberte soubor s kódem pásu karet.Standardně se nazývá soubor s kódem pásu Ribbon1.cs nebo Ribbon1.vb.

  11. V řádku nabídek zvolte zobrazení, kód.

    Pás karet kód soubor se otevře v editoru kódu.

  12. Následující metodu přidejte do souboru kódu pásu karet.Toto je metoda zpětného volání pro dvě tlačítka, které jste přidali do dokumentu nabídky.Tato metoda určuje, zda tato tlačítka se zobrazují v místní nabídce.Pouze v případě, že klepnete pravým tlačítkem myši v záložce text, zobrazí se tlačítka tučné písmo a kurzívu.

    Public Function GetVisible(ByVal control As Office.IRibbonControl) As Boolean 
        If control.Id = "BoldButton" Then 
            If Globals.ThisDocument.ShowBoldButton = True Then
                Globals.ThisDocument.ShowBoldButton = False 
                Return True 
            Else 
                Return False 
            End If 
        ElseIf control.Id = "ItalicButton" Then 
            If Globals.ThisDocument.ShowItalicButton = True Then
                Globals.ThisDocument.ShowItalicButton = False 
                Return True 
            Else 
                Return False 
            End If 
        Else 
            Return False 
        End If 
    End Function
    
    public bool GetVisible(Office.IRibbonControl control)
           {
               if (control.Id == "BoldButton")
               {
                   if (Globals.ThisDocument.showBoldButton == true)
                   {
                       Globals.ThisDocument.showBoldButton = false;
                       return true;
                   }
                   else
                   {
                       return false;
                   }
               }
               else if (control.Id == "ItalicButton")
               {
                   if (Globals.ThisDocument.showItalicButton == true)
                   {
                       Globals.ThisDocument.showItalicButton = false;
                       return true;
                   }
                   else
                   {
                       return false;
                   }
               }
               else
               {
                   return false;
               }
    
           }
    

Formátovat Text v záložce

Chcete-li formátovat text v záložce

  1. Přidejte do souboru kódu pásu karet ButtonClick obslužnou rutinu události můžete použít formátování na záložku.

    Public Sub ButtonClick(ByVal control As Office.IRibbonControl)
        If control.Id = "BoldButton" Then 
            If Globals.ThisDocument.selectedBookmark.Bold = _
                Globals.ThisDocument.WordTrue Then
                Globals.ThisDocument.selectedBookmark.Bold = _
                    Globals.ThisDocument.WordFalse
            Else
                Globals.ThisDocument.selectedBookmark.Bold = _
                    Globals.ThisDocument.WordTrue
            End If 
        ElseIf control.Id = "ItalicButton" Then 
            If Globals.ThisDocument.selectedBookmark.Italic = _
                Globals.ThisDocument.WordTrue Then
                Globals.ThisDocument.selectedBookmark.Italic = _
                    Globals.ThisDocument.WordFalse
            Else
                Globals.ThisDocument.selectedBookmark.Italic = _
                    Globals.ThisDocument.WordTrue
            End If 
        End If 
    End Sub
    
    public void ButtonClick(Office.IRibbonControl control)
    {
        if (control.Id == "BoldButton")
        {
            if (Globals.ThisDocument.selectedBookmark.Bold == 
                Globals.ThisDocument.WordTrue)
            {
                Globals.ThisDocument.selectedBookmark.Bold = 
                    Globals.ThisDocument.WordFalse;
            }
            else
            {
                Globals.ThisDocument.selectedBookmark.Bold = 
                    Globals.ThisDocument.WordTrue;
            }
        }
        else if (control.Id == "ItalicButton")
        {
            if (Globals.ThisDocument.selectedBookmark.Italic == 
                Globals.ThisDocument.WordTrue)
            {
                Globals.ThisDocument.selectedBookmark.Italic = 
                    Globals.ThisDocument.WordFalse;
            }
            else
            {
                Globals.ThisDocument.selectedBookmark.Italic = 
                    Globals.ThisDocument.WordTrue;
            }
        }
    
    }
    
  2. Průzkumník řešení, vyberte ThisDocument.cs nebo ThisDocument.vb.

  3. V řádku nabídek zvolte zobrazení, kód.

    ThisDocument otevře soubor třídy v editoru kódu.

  4. Přidejte následující kód, který ThisDocument třídy.

    Private Sub Bookmark_BeforeRightClick(ByVal sender As Object, ByVal e _
    As Microsoft.Office.Tools.Word.ClickEventArgs) _
    Handles Bookmark1.BeforeRightClick, Bookmark2.BeforeRightClick
        Dim startPosition As Integer = 0
        Dim i As Integer 
    
        ' If bookmarks overlap, get bookmark closest to cursor. 
        For i = 1 To e.Selection.Bookmarks.Count
            If e.Selection.Bookmarks(i).Start > startPosition Then
                startPosition = e.Selection.Bookmarks(i).Start
            End If 
        Next 
    
        ' If closest bookmark is the sender, show the shortcut menu options. 
        If DirectCast(sender, Microsoft.Office.Tools.Word.Bookmark).Start = _
            startPosition Then
            selectedBookmark = DirectCast(sender, Microsoft.Office.Tools.Word.Bookmark)
    
            ShowBoldButton = True
            ShowItalicButton = True 
    
        End If 
    
    End Sub
    
    void bookmark_BeforeRightClick(object sender, ClickEventArgs e)
            {
                int startPosition = 0;
    
                // If bookmarks overlap, get bookmark closest to cursor. 
                for (int i = 1; i <= e.Selection.Bookmarks.Count; i++)
                {
                    if (e.Selection.Bookmarks[i].Start > startPosition)
                    {
                        startPosition = e.Selection.Bookmarks[i].Start;
                    }
                }
    
                // If closest bookmark is the sender, show shortcut menu options. 
                if (((Microsoft.Office.Tools.Word.Bookmark)sender).Start == startPosition)
                {
                    selectedBookmark = (Microsoft.Office.Tools.Word.Bookmark)sender;
    
                    showBoldButton = true;
                    showItalicButton = true;
    
                }
    
            }
    

    [!POZNÁMKA]

    Musíte napsat kód pro zpracování případu, kde se překrývají záložky.Pokud tak učiníte, není ve výchozím nastavení, bude volána kód pro všechny záložky ve výběru.

  5. V jazyce C#, je třeba přidat obslužné rutiny událostí ovládacích prvků záložky Startup události.Informace o vytváření obslužných rutin událostí naleznete v tématu Postupy: Vytváření obslužných rutin událostí v projektech pro systém Office.

    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        this.bookmark1.BeforeRightClick += new ClickEventHandler(bookmark_BeforeRightClick);
        this.bookmark2.BeforeRightClick += new ClickEventHandler(bookmark_BeforeRightClick);
    }
    

Testování aplikace

Otestujte svůj dokument, ověřte, že tučné písmo a kurzívu nabídka zobrazí položky v místní nabídce po klepnutí pravým tlačítkem myši v záložce text a text je správně formátován.

Chcete-li otestovat dokumentu

  1. Stiskněte klávesu F5 a spusťte projekt.

  2. Klepněte pravým tlačítkem myši na první záložku a klepněte na tlačítko Tučné.

  3. Ověřte, že veškerý text v bookmark1 je formátován jako tučný.

  4. Text záložky kde překrývají, klepněte pravým tlačítkem myši a potom klepněte na tlačítko Kurzíva.

  5. Ověřte, že veškerý text v bookmark2 je kurzíva a pouze část textu v bookmark1 který překrývá bookmark2 je kurzíva.

Další kroky

Zde jsou některé úkoly, které by mohly přijít Další:

Viz také

Koncepty

Návody pro práci s aplikací Word

Automatizace v aplikaci Word s použitím rozšířených objektů

Záložka – ovládací prvek

Volitelné parametry v řešeních pro systém Office

Další zdroje

Přizpůsobení uživatelského rozhraní systému Office