İzlenecek Yol: Yer İşaretleri İçin Kısayol Menüleri Oluşturma
Bu izlenecek yolda Word belge düzeyi özelleştirmesindeki Bookmark denetimleri için kısayol menülerinin nasıl oluşturulduğu gösterilir.Eğer kullanıcı yer işaretindeki metni sağ tıklatırsa, kısayol menüsü görünür ve kullanıcıya metni biçimlendirmesi için seçenekler sunar.
Uygulama hedefi: Bu konudaki bilgiler, Word 2013 ve Word 2010 için belge düzeyi projelere yöneliktir. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.
Bu izlenecek yol aşağıdaki görevleri gösterir:
Visual Studio'da bir Word belgesi projesi oluşturma.
Metin ve yer imleri bir belge düzeyi projesinde belgeye tasarım zamanında ekleme.
Kısayol menüsü oluşturma.
Çakışan yer işaretlerini denetleme.
[!NOT]
Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için, bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.
Önkoşullar
Bu izlenecek yolu tamamlamak için aşağıdaki bileşenler gereklidir:
Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2013 sürümü. Daha fazla bilgi edinmek için, bkz. Office Çözümleri Geliştirmek İçin Bilgisayarı Yapılandırma.
Word 2013 veya Word 2010
Projeyi Oluşturma
İlk adım, Visual Studio'da Word belge projesi oluşturmaktır.
Yeni bir proje oluşturmak için
My Bookmark Shortcut Menu adında bir Word belge projesi oluşturun.Sihirbazda Create a new document'ı (Yeni belge oluştur) seçin.Daha fazla bilgi için bkz. Nasıl Yapılır: Visual Studio'da Office Projeleri Oluşturma.
Visual Studio yeni Word belgesini tasarımcıda açar ve My Bookmark Shortcut Menu projesini Çözüm Gezgini'ne ekler.
Belgeye Metin ve Yer İşaretleri Ekleme
Belgenize birkaç metin ve sonra da iki tane çakışan yer işareti ekleyin.
Belgenize metin ekleme
Proje Tasarımcısı'nda görünen belgede aşağıdaki metni yazın.
Bu, yer işaretindeki metni sağ tıklattığınızda kısayol menüsü oluşturmaya bir örnektir.
Belgenize Yer İşareti denetimi eklemek için
İçinde araç, dan Word denetimleri sekmesinde, sürükleyin bir Bookmark belgenize denetimi.
Add Bookmark Control (Yer İşareti Denetimi Ekle) iletişim kutusu görünür.
"Metni sağ tıklattığınızda kısayol menüsü oluşturma" sözcükleri seçin ve ardından Tamam.
bookmark1 belgeye eklenir.
Başka bir tane eklemek Bookmark "yer işaretindeki metni sağ" sözcükleri denetlemek.
bookmark2 belgeye eklenir.
[!NOT]
"Metni sağ tıklatın", olan her ikisinde de sözcük bookmark1 ve bookmark2.
Belgeye yer işaretini tasarım anında eklediğinizde, Bookmark denetim oluşturulur.Yer işaretlerinin birçok olayına karşı programlama yapabilirsiniz.Kullanıcı yer işareti içindeki metni sağ tıklattığında, kısayol menüsünün görünmesi için, yer işaretinin BeforeRightClick olayında kod yazabilirsiniz.
Kısayol menüsüne komut ekleme
Belgeyi sağ tıklattığınızda görüntülenen kısayol menüsünde düğme ekleyin.
Kısayol menüsüne komut eklemek için
Ekleme bir Şerit XML proje öğesi.Daha fazla bilgi için bkz. Nasıl Yapılır: Şerit Özelleştirmeye Başlama.
İçinde Çözüm Gezgini, select ThisDocument.vb veya ThisDocument.vb.
Menü çubuğunda, seçim Görünüm, kod.
ThisDocument sınıf dosyası Kod Düzenleyicisi'nde açılır.
Aşağıdaki kodu ekleyin ThisDocument sınıf.Bu kodu geçersiz kılar CreateRibbonExtensibilityObject yöntem Şerit XML sınıfını döndüren Office uygulaması.
Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility Return New Ribbon1() End Function
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() { return new Ribbon1(); }
İçinde Çözüm Gezgini, Şerit XML dosyası seçin.Varsayılan olarak, Şerit XML dosyası Ribbon1.xml olarak adlandırılır.
Menü çubuğunda, seçim Görünüm, kod.
Şerit xml dosyası Kod Düzenleyicisi'nde açılır.
Kod Düzenleyicisi'nde Şerit XML dosyasının içeriğini aşağıdaki kodla değiştirin.
<?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>
Bu kod, iki düğme belgeyi sağ tıklattığınızda görüntülenen kısayol menüsü ekler.
Çözüm Gezgini'nde ThisDocument'a sağ tıklayın ve ardından Kodu Göster'i tıklayın.
Aşağıdaki değişkenleri ve yer işareti değişkenini sınıf düzeyinde bildirin.
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;
İçinde Çözüm Gezgini, Şerit kod dosyası seçin.Varsayılan olarak, Şerit kod dosyası adlı Ribbon1.cs veya Ribbon1.vb.
Menü çubuğunda, seçim Görünüm, kod.
Şerit kod dosyası Kod Düzenleyici'sinde açılır.
Şerit kod dosyasında aşağıdaki yöntemi ekleyin.Belge kısayol menüsüne eklediğiniz iki düğme için bir geri arama yöntemi budur.Bu yöntem, bu düğmelerin kısayol menüsünün görüntülenip görüntülenmeyeceğini belirler.Yalnızca yer işareti içindeki metni sağ tıklattığınızda, kalın ve italik düğmeleri görünür.
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; } }
Yer işaretindeki metni biçimlendirme
Yer işaretindeki metni biçimlendirmek
Şerit kod dosyasına ekleyin bir ButtonClick yer işaretine biçimlendirme uygulamak için olay işleyicisi.
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; } } }
Çözüm Gezgini, select ThisDocument.vb veya ThisDocument.vb.
Menü çubuğunda, seçim Görünüm, kod.
ThisDocument sınıf dosyası Kod Düzenleyicisi'nde açılır.
Aşağıdaki kodu ekleyin ThisDocument sınıf.
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; } }
[!NOT]
Yer işaretlerinin çakıştığı durumlarla başa çıkmak için kod yazmalısınız.Eğer yazmazsanız, varsayılan olarak kod, bölümdeki tüm yer işaretleri için çağrılır.
C#'ta, yer işareti denetimleri için Startup olayına olay işleyicileri eklemelisiniz.Olay işleyicisi oluşturma hakkında daha fazla bilgi için, bkz. Nasıl Yapılır: Office Projelerinde Olay İşleyicileri Oluşturma.
private void ThisDocument_Startup(object sender, System.EventArgs e) { this.bookmark1.BeforeRightClick += new ClickEventHandler(bookmark_BeforeRightClick); this.bookmark2.BeforeRightClick += new ClickEventHandler(bookmark_BeforeRightClick); }
Uygulamayı Test Etme
Yer işaretindeki metni sağ tıklattığınızda kısayol menüsünde kalın ve italik menü öğeleri görüntülenir ve metnin düzgünce biçimlendirildiğini doğrulamak için belgenizi sınayın.
Belgenizi test etmek için
F5 tuşuna basarak projeyi çalıştırın.
İlk yer işaretini sağ tıklatın ve sonra Kalın'ı tıklatın.
bookmark1 içindeki tüm metnin kalın olarak biçimlendirildiğini doğrulayın.
Yer işaretlerinin çakıştığı metni sağ tıklatın ve İtalik'i tıklatın.
bookmark2 içindeki tüm metnin italik olduğunu ve bookmark2 ile çakışan bookmark1 içindeki metnin sadece bir kısmının italik olduğunu doğrulayın.
Sonraki Adımlar
Sonradan gelebilecek bazı görevler:
Excel'de konak kontrollerinin olaylarını yanıtlamak için kod yazın.Daha fazla bilgi için bkz. İzlenecek Yol: NamedRange Denetimi Olaylarına Karşı Programlama.
Yer işaretindeki biçimlendirmeyi değiştirmek için onay kutusu kullanın.Daha fazla bilgi için bkz. İzlenecek Yol: CheckBox Denetimlerini Kullanarak Belge Biçimlendirmesini Değiştirme.
Ayrıca bkz.
Kavramlar
Word Kullanımında İzlenecek Yollar
Genişletilmiş Nesneleri Kullanarak Word'ü Otomatikleştirme
Office Çözümlerinde İsteğe Bağlı Parametreler