Compartir a través de


ControlCollection.AddRichTextContentControl (Método) (ContentControl, String)

Agrega un nuevo control RichTextContentControl basado en un control de contenido nativo del documento.

Espacio de nombres:  Microsoft.Office.Tools.Word
Ensamblado:  Microsoft.Office.Tools.Word (en Microsoft.Office.Tools.Word.dll)

Sintaxis

'Declaración
Function AddRichTextContentControl ( _
    contentControl As ContentControl, _
    name As String _
) As RichTextContentControl
RichTextContentControl AddRichTextContentControl(
    ContentControl contentControl,
    string name
)

Parámetros

Valor devuelto

Tipo: Microsoft.Office.Tools.Word.RichTextContentControl
El control RichTextContentControl que se agregó al documento.

Excepciones

Excepción Condición
ArgumentNullException

contentControl es nullreferencia null (Nothing en Visual Basic).

O bien

name es nullreferencia null (Nothing en Visual Basic) o tiene longitud cero.

ControlNameAlreadyExistsException

Ya existe un control con el mismo nombre en ControlCollection.

ArgumentException

contentControl no es una galería de bloques de creación (es decir, la propiedad Microsoft.Office.Interop.Word.ContentControl.Type de contentControl no tiene el valor Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText).

Comentarios

Utilice este método para agregar un nuevo control RichTextContentControl basado en un control de contenido nativo del documento en tiempo de ejecución.Esto resulta útil si crea un control RichTextContentControl en tiempo de ejecución y desea volver a crear el mismo control la próxima vez que se abra el documento.Para obtener más información, vea Agregar controles a documentos de Office en tiempo de ejecución.

Ejemplos

En el ejemplo de código siguiente se crea un nuevo RichTextContentControl para cada control de texto enriquecido nativo que hay en el documento.

Se trata de una versión para una personalización en el nivel del documento.Para usar este código, péguelo en la clase ThisDocument del proyecto y llame al método CreateRichTextControlsFromNativeControls desde el método ThisDocument_Startup.

Private richTextControls As New System.Collections.Generic.List _
        (Of Microsoft.Office.Tools.Word.RichTextContentControl)

Private Sub CreateRichTextControlsFromNativeControls()
    If Me.ContentControls.Count <= 0 Then
        Return
    End If

    Dim count As Integer = 0
    For Each nativeControl As Word.ContentControl In Me.ContentControls
        If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then
            count += 1
            Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _
                Me.Controls.AddRichTextContentControl(nativeControl, _
                "VSTORichTextContentControl" + count.ToString())
            richTextControls.Add(tempControl)
        End If
    Next nativeControl
End Sub
private System.Collections.Generic.List
    <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls;

private void CreateRichTextControlsFromNativeControls()
{
    if (this.ContentControls.Count <= 0)
        return;

    richTextControls = new System.Collections.Generic.List
        <Microsoft.Office.Tools.Word.RichTextContentControl>();
    int count = 0;

    foreach (Word.ContentControl nativeControl in this.ContentControls)
    {
        if (nativeControl.Type ==
            Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
        {
            count++;
            Microsoft.Office.Tools.Word.RichTextContentControl tempControl =
                this.Controls.AddRichTextContentControl(nativeControl,
                "VSTORichTextControl" + count.ToString());
            richTextControls.Add(tempControl);
        }
    }
}

Esta versión es para un complemento de nivel de aplicación que tiene como destino .NET Framework 4 o .NET Framework 4.5.Para usar este código, péguelo en la clase ThisAddIn del proyecto y llame al método CreateRichTextControlsFromNativeControls desde el método ThisAddIn_Startup.

Private richTextControls As New System.Collections.Generic.List _
        (Of Microsoft.Office.Tools.Word.RichTextContentControl)

Private Sub CreateRichTextControlsFromNativeControls()
    If Me.Application.ActiveDocument Is Nothing Then
        Return
    End If

    Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    If vstoDoc.ContentControls.Count <= 0 Then
        Return
    End If

    Dim count As Integer = 0
    For Each nativeControl As Word.ContentControl In vstoDoc.ContentControls
        If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then
            count += 1
            Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _
                vstoDoc.Controls.AddRichTextContentControl(nativeControl, _
                "VSTORichTextContentControl" + count.ToString())
            richTextControls.Add(tempControl)
        End If
    Next nativeControl
End Sub
private System.Collections.Generic.List
    <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls;

private void CreateRichTextControlsFromNativeControls()
{
    if (this.Application.ActiveDocument == null)
        return;

    Document vstoDoc = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    if (vstoDoc.ContentControls.Count <= 0)
        return;

    richTextControls = new System.Collections.Generic.List
        <Microsoft.Office.Tools.Word.RichTextContentControl>();
    int count = 0;

    foreach (Word.ContentControl nativeControl in vstoDoc.ContentControls)
    {
        if (nativeControl.Type ==
            Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
        {
            count++;
            Microsoft.Office.Tools.Word.RichTextContentControl tempControl =
                vstoDoc.Controls.AddRichTextContentControl(nativeControl,
                "VSTORichTextControl" + count.ToString());
            richTextControls.Add(tempControl);
        }
    }
}

En el ejemplo de código siguiente se crea un nuevo RichTextContentControl para cada control de texto enriquecido nativo que el usuario agrega al documento.

Se trata de una versión para una personalización en el nivel del documento.Para usar este código, péguelo en la clase ThisDocument del proyecto.En C#, además debe asociar el controlador de eventos ThisDocument_RichTextContentControlAfterAdd al evento ContentControlAfterAdd de la clase ThisDocument.

Private Sub ThisDocument_RichTextContentControlAfterAdd(ByVal NewContentControl As Word.ContentControl, _
    ByVal InUndoRedo As Boolean) Handles Me.ContentControlAfterAdd

    If NewContentControl.Type = Word.WdContentControlType.wdContentControlRichText Then
        Me.Controls.AddRichTextContentControl(NewContentControl, _
            "RichTextControl" + NewContentControl.ID)
    End If
End Sub
void ThisDocument_RichTextContentControlAfterAdd(Word.ContentControl NewContentControl, bool InUndoRedo)
{
    if (NewContentControl.Type == Word.WdContentControlType.wdContentControlRichText)
    {
        this.Controls.AddRichTextContentControl(NewContentControl,
            "RichTextControl" + NewContentControl.ID);
    }
}

Esta versión es para un complemento de nivel de aplicación que tiene como destino .NET Framework 4 o .NET Framework 4.5.Para usar este código, péguelo en la clase ThisAddIn del proyecto.Además, debe asociar el controlador de eventos ActiveDocument_RichTextContentControlAfterAdd al evento ContentControlAfterAdd del documento activo.

Private Sub ActiveDocument_RichTextContentControlAfterAdd( _
    ByVal NewContentControl As Word.ContentControl, _
    ByVal InUndoRedo As Boolean)

    Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    If NewContentControl.Type = Word.WdContentControlType. _
        wdContentControlRichText Then
        vstoDoc.Controls.AddRichTextContentControl(NewContentControl, _
            "RichTextControl" + NewContentControl.ID)
    End If
End Sub
void ActiveDocument_RichTextContentControlAfterAdd(
    Word.ContentControl NewContentControl, bool InUndoRedo)
{
    Document vstoDoc = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    if (NewContentControl.Type == Word.WdContentControlType.wdContentControlRichText)
    {
        vstoDoc.Controls.AddRichTextContentControl(NewContentControl,
            "RichTextControl" + NewContentControl.ID);
    }
}

Seguridad de .NET Framework

Vea también

Referencia

ControlCollection Interfaz

AddRichTextContentControl (Sobrecarga)

Microsoft.Office.Tools.Word (Espacio de nombres)

Otros recursos

Agregar controles a documentos de Office en tiempo de ejecución

Cómo: Agregar controles de contenido a documentos de Word