Sdílet prostřednictvím


Názorný postup: 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 přizpůsobení úroveň dokument aplikace Word.Když uživatel klepne pravým tlačítkem text záložky, 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 v aplikacích Word 2013 a Word 2010. Další informace naleznete v tématu Funkce aplikace Office a typ projektu.

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

  • Vytváření projektu.

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

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

  • Formátování textu v záložkách.

[!POZNÁMKA]

Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.

Požadavky

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

-

Edice sady Visual Studio 2012, která zahrnuje nástroje Microsoft Office Developer Tools. Další informace naleznete v tématu [Konfigurace počítače vyvinout řešení Office](bb398242\(v=vs.110\).md).
  • Word 2013 nebo Word 2010

Vytváření projektu

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

Vytvoření nového projektu

  • Vytvořte projekt dokumentu aplikace Word s názvem Moje Záložka místní nabídky.V okně průvodce vyberte vytvořit nový dokument.Další informace naleznete v tématu Jak: vytvoření Office projekty v aplikaci Visual Studio.

    Nový dokument aplikace Word se otevře v návrháři Visual Studio a přidá Moje Záložka místní nabídky projektu Průzkumníku.

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.

Přidání textu 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 pravým tlačítkem myši na záložku text.

Přidání ovládacího prvku záložky v dokumentu

  1. V nástrojů, z 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í zobrazí se 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 "pravým tlačítkem myši na záložku text".

    bookmark2je přidán do dokumentu.

    [!POZNÁMKA]

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

Po přidání záložky k dokumentu v době návrhu Bookmark ovládací prvek je vytvořen.Lze program proti několik událostí záložky.Můžete psát kód BeforeRightClick události záložky, takže po 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áte tlačítka v místní nabídce, která se zobrazí po klepnutí pravým tlačítkem myši dokument.

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 Jak: Začínáme přizpůsobení pásu karet.

  2. V Průzkumníku, vyberte ThisDocument.cs nebo ThisDocument.vb.

  3. Na panelu nabídek zvolte zobrazení, kód.

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

  4. Následující kód přidejte ThisDocument třídy.Tento kód přepíše CreateRibbonExtensibilityObject metoda a vrátí XML pásu karet třídy 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íku, vyberte soubor XML pásu karet.Standardně je soubor XML pásu karet s názvem Ribbon1.xml.

  6. Na panelu nabídek zvolte zobrazení, kód.

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

  7. Následující kód v editoru kódu nahraďte 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 místní nabídky, která se zobrazí po klepnutí pravým tlačítkem myši dokument.

  8. V Průzkumníku, klepněte pravým tlačítkem ThisDocumenta klepněte na tlačítko Zobrazení kódu.

  9. Deklarujte následující proměnné a proměnné záložku 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íku, vyberte soubor kódu pásu karet.Výchozí soubor pásu kódu je pojmenován Ribbon1.cs nebo Ribbon1.vb.

  11. Na panelu nabídek zvolte zobrazení, kód.

    Otevře soubor pásu kódu v editoru kódu.

  12. V souboru kódu pásu přidejte následující metodu.Toto je metoda zpětného volání pro dvě tlačítka, přidané do místní nabídky dokumentu.Tato metoda určuje, zda tato tlačítka se zobrazí 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átování textu v záložkách

  1. V souboru kódu pásu karet přidat ButtonClick formátování Záložka obslužnou rutinu události.

    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. Na panelu nabídek zvolte zobrazení, kód.

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

  4. Následující kód přidejte 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 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# musíte přidat obslužné rutiny události pro ovládací prvky záložky Startup události.Informace o vytváření obslužných rutin událostí, Jak: vytvoření obslužné rutiny událostí v projektech 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

Testujte dokumentu ověřte, že tučné písmo a kurzívu nabídky položky se zobrazí v místní nabídce, pravým tlačítkem myši na záložku text a text je správně formátován.

Testování dokumentu

  1. Stisknutím klávesy F5 spustit projektu.

  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. Pravým tlačítkem myši na text, kde se překrývají záložky, a klepněte na tlačítko Kurzíva.

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

Další kroky

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

Viz také

Koncepty

Aplikace Word pomocí návody

Automatizace aplikace Word pomocí rozšířené objekty

Záložka řízení

Volitelné parametry v Office Solutions

Další zdroje

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