İzlenecek Yol: Belge Düzeyi Özelleştirmesi Kullanarak Akıllı Etiket Oluşturma
Bu anlatım, Word için belge düzeyi özelleştirmesinde akıllı etiketlerin nasıl oluşturulduğunu gösterir. Buradaki akıllı etiket, fahrenhayt sıcaklığı dizgilerini tanır. Bu akıllı etiket, sıcaklığı santigrat derecesine çevirip tanınan metni biçimlendirilmiş bir santigrat sıcaklığı dizgisiyle değiştiren bir eylem içerir.
Uygulama alanı: Bu konudaki bilgiler Word 2007'nin belge düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.
Bu akıllı etiketi çalıştırmak için, son kullanıcılar Word'de akıllı etiketleri etkin hale getirmeliler. Daha fazla bilgi için bkz. Nasıl Yapılır: Word ve Excel'de Akıllı Etiketleri Etkinleştirme.
Bu anlatım aşağıdaki görevleri gösterir:
Normal ifadeleri tanıyan bir akıllı etiket oluşturma.
Veriti akıllı etiketten alan ve tanınan akıllı etiketin metnini değiştiren bir eylem oluşturma.
Not
Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arayüzü öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz. Ayarlar ile çalışma.
Önkoşullar
Bu anlatımı tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:
-
Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2010 sürümü. Daha fazla bilgi için bkz: [Office Çözümeri Geliştirmek İçin Bilgisayarı Yapılandırma](bb398242\(v=vs.100\).md).
Word 2007.
.NET Framework 3,5.
Not
.NET Framework 4'ü hedeflerseniz, akıllı etiketler ve eylemler oluşturmak için farklı kodlar yazmalısınız. Daha fazla bilgi için bkz. Akıllı Etiketler Mimarisi.
Yeni Bir Proje Oluşturma
İlk adım Word Belge projesi oluşturmaktır.
Yeni bir proje oluşturmak için
Visual Basic veya C# kullanarak My Smart Tag isimli Word 2007 Belgesi projesi oluşturun. Sihirbazda Yeni belge oluşturu seçin.
Daha fazla bilgi için bkz. Nasıl Yapılır: Visual Studio'da Office Projeleri Oluşturma.
Visual Studio tasarımcısında yeni bir Word belgesine açar ve My akıllı etiket projeye ekler Solution Explorer.
Projeyi Yapılandırma
Proje, DLL akıllı etiketine olan bir başvuruya ihtiyaç duyar ve ayrıca normal ifadeleri kullanmalıdır.
Projenizi yapılandırmak
Project (Proje) menüsünde, Add Reference'ı (Başvuru Ekle) tıklatın.
.NET sekmesindeki Microsoft.Office.Interop.SmartTag'i seçin ve Tamam'ı tıklatın. Derlemenin 12.0.0.0 sürümünü seçin.
Çözüm Gezgini'nde ThisDocument.vb (Visual Basic'de) veya ThisDocument.cs (C#'ta) dosyasını sağ tıklatın ve Kodu Göster'i tıklatın.
Aşağıdaki kod satırını dosyanın başına ekleyin.
Imports System.Text.RegularExpressions
using System.Text.RegularExpressions;
Akıllı Etiket Oluşturma
Fahrenhayt sıcaklığı dizgilerini bulması ve dönüştürmesi amacıyla akıllı etiketi etkin yapmak için, akıllı etiketin tanıdığı terimler listesine normal ifadeler ekleyin ve kullanıcı akıllı etiketi tıklattığında kullanılabilir olan bir eylem oluşturun.
Akıllı etiket oluşturmak
ThisDocument sınıfındaki ThisDocument_Startup olay işleyicisini aşağıdaki kod ile değiştirin. Bu kod, akıllı etiketi tanıtan ve akıllı etiketin tanıdığı terimlerin listesine normal ifadeler ekleyen SmartTag'i oluşturur.
WithEvents action1 As Microsoft.Office.Tools.Word.Action Private Sub ThisDocument_Startup(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Startup 'Use the following line of code in projects that target the .NET Framework 4. Dim smartTag1 As Microsoft.Office.Tools.Word.SmartTag = _ Globals.Factory.CreateSmartTag( _ "www.microsoft.com/Demo#DemoSmartTag", _ "Demonstration Smart Tag") 'In projects that target the .NET Framework 3.5, use the following line of code. 'Dim smartTag1 As New Microsoft.Office.Tools.Word.SmartTag( _ ' "www.microsoft.com/Demo#DemoSmartTag", _ ' "Demonstration Smart Tag") smartTag1.Expressions.Add( _ New Regex("(?'number'[+-]?\b[0-9]+)?\s?(F|f)\b"))
private Microsoft.Office.Tools.Word.Action action1; private void ThisDocument_Startup(object sender, System.EventArgs e) { // Use the following line of code in projects that target the .NET Framework 4. Microsoft.Office.Tools.Word.SmartTag smartTag1 = Globals.Factory.CreateSmartTag( "www.microsoft.com/Demo#DemoSmartTag", "Demonstration Smart Tag"); // In projects that target the .NET Framework 3.5, use the following line of code. //Microsoft.Office.Tools.Word.SmartTag smartTag1 = // new Microsoft.Office.Tools.Word.SmartTag( // "www.microsoft.com/Demo#DemoSmartTag", // "Demonstration Smart Tag"); smartTag1.Expressions.Add(new Regex( @"(?'number'[+-]?\b[0-9]+)�?\s?(F|f)\b"));
Yeni bir Action oluşturun ve akıllı etiketin Actions özelliğine ekleyin. Action, kullanıcının akıllı etiket menüsünde tıklatabileceği bir öğeyi temsil eder.
'Use the following line of code in projects that target the .NET Framework 4. action1 = Globals.Factory.CreateAction( _ "Convert to Celsius") 'In projects that target the .NET Framework 3.5, use the following line of code. 'action1 = New Microsoft.Office.Tools.Word.Action( _ ' "Convert to Celsius") smartTag1.Actions = _ New Microsoft.Office.Tools.Word.Action() {action1}
// Use the following line of code in projects that target the .NET Framework 4. action1 = Globals.Factory.CreateAction( "Convert to Celsius"); // In projects that target the .NET Framework 3.5, use the following line of code. //action1 = new Microsoft.Office.Tools.Word.Action( // "Convert to Celsius"); smartTag1.Actions = new Microsoft.Office.Tools.Word.Action[] {action1};
SmartTag'yi VstoSmartTags özelliğine ekleyerek akıllı etiketi belgeye iliştirin. C#'ta eylemin Click olayına bir olay işleyicis ekleyin.
Me.VstoSmartTags.Add(smartTag1) End Sub
this.VstoSmartTags.Add(smartTag1); action1.Click += new Microsoft.Office.Tools.Word.ActionClickEventHandler( action1_Click); }
Eylem için Olay İşleyicisi Oluşturma
Olay işleyicisi, akıllı etiketin özellik çantasında olan fahrenhayt sıcaklık değerini number anahtarından alabilir. Olay işleyicisi bundan sonra fahrenhayt sıcaklık değerini santigrata çevirip tanınan dizgiyi değiştirir.
Bu örnekte, number anahtarı akıllı etikete atanan normal ifadelerden yakalanan grubu belirler. Akıllı etiketlerin özellik çantaları ve normal ifadeleri hakkında daha fazla bilgi için, bkz. Akıllı Etiketler Mimarisi.
Olay işleyicisi oluşturmak
Aşağıdaki kodu ThisDocument sınıfına kopyalayın.
Private Sub action1_Click(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _ Handles action1.Click Dim value As String = e.Properties.Read("number") Dim fahrenheit As Double = System.Convert.ToDouble(value) Dim celsius As Integer = Fix(fahrenheit - 32) * 5 / 9 e.Range.Text = celsius.ToString() + "C" End Sub
void action1_Click(object sender, Microsoft.Office.Tools.Word.ActionEventArgs e) { string value = e.Properties.get_Read("number"); double fahrenheit = System.Convert.ToDouble(value); int celsius = (int)(fahrenheit - 32) * 5 / 9; e.Range.Text = celsius.ToString() + "�C"; }
Uygulamayı Sınama
Akıllı etiketin fahrenhayt değerini santigrata dönüştürdüğünden emin olmak için artık belgenizi sınayabilirsiniz.
Çalışma kitabınızı sınamak
Word'de akıllı etiketleri etkinleştirin.
Daha fazla bilgi için bkz. Nasıl Yapılır: Word ve Excel'de Akıllı Etiketleri Etkinleştirme.
F5 tuşuna basarak projeyi çalıştırın.
Akıllı etikete eklediğiniz normal ifadeye uyan bir dizgi (örn. 60F, 60° F ya da 60 F) yazın.
Not
Derece işareti (°) yapmak için, ALT tuşuna basıp 248 yazabilirsiniz.
Tanınan dizginin üzerinde görünen akıllı etiket simgesini tıklatın ve Convert to Celsius (Santigrada Çevir)'i tıklatın.
Asıl dizginin, santigrat cinsinden sıcaklığı içeren yeni dizgiyle değiştiğini onaylayın.
Ayrıca bkz.
Görevler
Nasıl Yapılır: Word ve Excel'de Akıllı Etiketleri Etkinleştirme
Nasıl Yapılır: Word Belgelerine Akıllı Etiketler Ekleme
Nasıl Yapılır: Excel Çalışma Kitaplarına Akıllı Etiketler Ekleme
İzlenecek Yol: Uygulama Düzeyi Eklentisini Kullanarak Akıllı Etiket Oluşturma
Kavramlar
Nasıl Yapılır: Word and .NET Framework 3.5'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma
Nasıl Yapılır: Excel and .NET Framework 3.5'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma