次の方法で共有


SmartTag.PersistTag メソッド (Int32, Int32, ) (2007 System)

更新 : 2007 年 11 月

スマート タグに関する情報を格納します。

名前空間 :  Microsoft.Office.Tools.Word
アセンブリ :  Microsoft.Office.Tools.Word.v9.0 (Microsoft.Office.Tools.Word.v9.0.dll 内)

構文

'宣言
Protected Sub PersistTag ( _
    startIndex As Integer, _
    length As Integer, _
    propertyBag As ISmartTagProperties _
)
'使用
Dim startIndex As Integer
Dim length As Integer
Dim propertyBag As ISmartTagProperties

Me.PersistTag(startIndex, length, _
    propertyBag)
protected void PersistTag(
    int startIndex,
    int length,
    ISmartTagProperties propertyBag
)

パラメータ

  • startIndex
    型 : System.Int32

    段落内でのスマート タグの開始位置。

  • propertyBag
    型 : ISmartTagProperties

    トークンのキーと値の組み合わせを格納しているプロパティ バッグ。nullnull 参照 (Visual Basic では Nothing) の場合があります。

例外

例外 条件
InvalidOperationException

PersistTag(Int32, Int32, ISmartTagProperties) が、Recognize から呼び出されませんでした。

解説

PersistTag(Int32, Int32, ISmartTagProperties) は、認識されるタグをコミットします。スマート タグがテキスト内で見つかったことを示すには、これを Recognize メソッドから呼び出します。スマート タグ用の任意のカスタム プロパティをコミットするには、propertyBag パラメータを使用します。これらのプロパティを使用すると、スマート タグのショートカット メニューで項目の 1 つを選択した場合のアクションをカスタマイズできます。

Microsoft.Office.Tools.Word.SmartTag から派生するクラス内で Recognize メソッドをオーバーライドする方法のコード例を次に示します。この Recognize の実装例では、各スマート タグ項目と段落の内容とを比較します。このコードでは、段落内でスマート タグ項目が見つかると、カスタム スマート タグ プロパティを追加し、PersistTag(Int32, Int32, ISmartTagProperties) メソッドを使用してスマート タグを認識します。この例は、[参照の追加] ダイアログ ボックスの [COM] タブで、Microsoft Smart Tags 2.0 Type Library への参照が追加してあると仮定しています。次のコード例は、SmartTag クラス用のより大きなコード例の一部です。

Protected Overrides Sub Recognize(ByVal text As String, _
    ByVal site As ISmartTagRecognizerSite, _
    ByVal tokenList As ISmartTagTokenList)

    ' Determine whether each smart tag term exists in 
    ' the document text.
    Dim Term As String
    For Each Term In Me.Terms

        ' Search the text for the current smart tag term.
        Dim index As Integer = Me.ParagraphText.IndexOf(Term, 0)

        While (index >= 0)

            ' Create a smart tag token and a property bag for the 
            ' recognized term.
            Dim propertyBag As ISmartTagProperties = _
                site.GetNewPropertyBag()

            ' Write a new property value.
            Dim key As String = "Key1"
            propertyBag.Write(key, DateTime.Now)

            ' Attach the smart tag to the term in the document
            Me.PersistTag(index, Term.Length, propertyBag)

            ' Increment the index and then find the next
            ' instance of the smart tag term.
            index += Term.Length
            index = ParagraphText.IndexOf(Term, index)
        End While
    Next
End Sub
protected override void Recognize(string text, 
    ISmartTagRecognizerSite site, ISmartTagTokenList tokenList)
{
    foreach (string term in this.Terms)
    {
        // Search the text for the current smart tag term.
        int index = this.ParagraphText.IndexOf(term, 0);

        while (index >= 0)
        {
            // Create a smart tag token and a property bag for the 
            // recognized term.
            ISmartTagProperties propertyBag = 
                site.GetNewPropertyBag();

            // Write a new property value.
            string key = "Key1";
            propertyBag.Write(key, DateTime.Now.ToString());

            // Attach the smart tag to the term in the document
            this.PersistTag(index, term.Length, propertyBag);

            // Increment the index and then find the next
            // instance of the smart tag term.
            index += term.Length;
            index = ParagraphText.IndexOf(term, index);
        }
    }
}

アクセス許可

  • 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

SmartTag クラス

SmartTag メンバ

PersistTag オーバーロード

Microsoft.Office.Tools.Word 名前空間