Cómo: Agregar controles de Windows Forms a documentos de Office
Puede agregar controles de formularios Windows Forms a documentos de Microsoft Office Word y Microsoft Office Excel en tiempo de diseño en proyectos en el nivel del documento.En tiempo de ejecución, puede agregar controles a personalizaciones en el nivel del documento y a complementos en el nivel de la aplicación.Por ejemplo, puede agregar un control ComboBox a la hoja de cálculo correspondiente para que los usuarios puedan realizar diferentes selecciones de una lista de opciones.
Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para las siguientes aplicaciones: Excel 2013 y Excel 2010; Word 2013 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.
En este tema se describen las tareas siguientes:
Agregar controles en tiempo de diseño
Agregar controles en tiempo de ejecución a proyectos en el nivel del documento
Agregar controles en tiempo de ejecución a complementos en el nivel de la aplicación
Dispone de una demostración en vídeo relacionada en How Do I: Add Controls to a Document Surface at Runtime?.
Agregar controles en tiempo de diseño
Hay varias maneras de agregar controles de formularios Windows Forms al documento de un proyecto en el nivel del documento en tiempo de ejecución:
[!NOTA]
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.
Para arrastrar un control de formularios Windows Forms al documento
Cree o abra un proyecto de libro de Excel o de documento de Word en Visual Studio para que el documento sea visible en el diseñador.Para obtener información sobre cómo crear proyectos, vea Cómo: Crear proyectos de Office en Visual Studio.
En la ficha Controles comunes del Cuadro de herramientas, haga clic en el control que desea agregar y arrástrelo al documento.
[!NOTA]
Cuando seleccione un control en Excel, verá =EMBED("WinForms.Control.Host","") en la Barra de fórmulas.Este texto es necesario y no debe eliminarse.
Para dibujar un control de formularios Windows Forms en el documento
Cree o abra un proyecto de libro de Excel o de documento de Word en Visual Studio para que el documento sea visible en el diseñador.Para obtener información sobre cómo crear proyectos, vea Cómo: Crear proyectos de Office en Visual Studio.
En la ficha Controles comunes del Cuadro de herramientas, haga clic en el control que desea agregar.
En el documento, haga clic en el punto en que desee que se encuentre la esquina superior izquierda del control y arrastre hasta donde desee que se encuentre la esquina inferior derecha del control.
El control se agregará al documento con la ubicación y el tamaño especificados.
[!NOTA]
Cuando seleccione un control en Excel, verá =EMBED("WinForms.Control.Host","") en la Barra de fórmulas.Este texto es necesario y no debe eliminarse.
Para agregar un control de formularios Windows Forms al documento mediante un clic en el control
Cree o abra un proyecto de libro de Excel o de documento de Word en Visual Studio para que el documento sea visible en el diseñador.Para obtener información sobre cómo crear proyectos, vea Cómo: Crear proyectos de Office en Visual Studio.
En la ficha Controles comunes del Cuadro de herramientas, haga clic en el control que desea agregar.
En el documento, haga clic en el lugar en el que desea agregar el control.
El control se agrega al documento con el tamaño predeterminado.
[!NOTA]
Cuando seleccione un control en Excel, verá =EMBED("WinForms.Control.Host","") en la Barra de fórmulas.Este texto es necesario y no debe eliminarse.
Para agregar un control de formularios Windows Forms al documento mediante un doble clic en el control
Cree o abra un proyecto de libro de Excel o de documento de Word en Visual Studio para que el documento sea visible en el diseñador.Para obtener información sobre cómo crear proyectos, vea Cómo: Crear proyectos de Office en Visual Studio.
En la ficha Controles comunes del Cuadro de herramientas, haga doble clic en el control que desea agregar.
El control se agrega al documento en el centro del documento o del panel activo.
[!NOTA]
Cuando seleccione un control en Excel, verá =EMBED("WinForms.Control.Host","") en la Barra de fórmulas.Este texto es necesario y no debe eliminarse.
Para agregar un control de formularios Windows Forms al documento mediante la tecla ENTRAR
Cree o abra un proyecto de libro de Excel o de documento de Word en Visual Studio para que el documento sea visible en el diseñador.Para obtener información sobre cómo crear proyectos, vea Cómo: Crear proyectos de Office en Visual Studio.
En la ficha Controles comunes del Cuadro de herramientas, haga clic en el control que desea agregar y presione la tecla ENTRAR.
El control se agrega al documento en el centro del documento o del panel activo.
[!NOTA]
Cuando seleccione un control en Excel, verá =EMBED("WinForms.Control.Host","") en la Barra de fórmulas.Este texto es necesario y no debe eliminarse.
Agregar controles en tiempo de ejecución a proyectos en el nivel del documento
Puede agregar, mediante programación, controles de formularios Windows Forms a documentos en tiempo de ejecución.En Word, use los métodos de la propiedad Controls de la clase ThisDocument.En Excel, use los métodos de la propiedad Controls de una clase Sheetn.Cada método tiene varias sobrecargas que permiten especificar la ubicación del control de maneras diferentes.
Cuando se agrega un control de formularios Windows Forms a un documento en tiempo de ejecución, el control no se conserva en el documento cuando éste se cierra.Puede volver a crear el 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.
Para agregar un control de formularios Windows Forms en tiempo de ejecución
Use un método con el nombre Add<clase del control> (donde clase del control es el nombre de clase del control de Windows Forms que se desea agregar; por ejemplo AddButton()).
En el ejemplo de código siguiente se muestra cómo agregar un Button a la celda C5 de la Sheet1 en un proyecto en el nivel del documento para Excel.
Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup Dim salesButton As Microsoft.Office.Tools.Excel.Controls.Button salesButton = Me.Controls.AddButton(Me.Range("C5"), "salesButton") salesButton.Text = "Calculate Total Sales" End Sub
private void Sheet1_Startup(object sender, System.EventArgs e) { Microsoft.Office.Tools.Excel.Controls.Button salesButton; salesButton = this.Controls.AddButton(this.get_Range("C5"), "salesButton"); salesButton.Text = "Calculate Total Sales"; }
Agregar controles en tiempo de ejecución a complementos en el nivel de la aplicación
Puede agregar, mediante programación, controles de formularios Windows Forms a cualquier documento abierto en tiempo de ejecución.Primero, genere un elemento host basado en un documento o en una hoja de cálculo abierta.A continuación, en Word, utilice métodos de la propiedad Document.Controls del nuevo elemento host.En Excel, utilice métodos de la propiedad Worksheet.Controls del nuevo elemento host.Cada método tiene varias sobrecargas que permiten especificar la ubicación del control de maneras diferentes.
Cuando se agrega un control de formularios Windows Forms a un documento en tiempo de ejecución, el control no se conserva en el documento cuando éste se cierra.Puede volver a crear el 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.
Para obtener más información sobre cómo generar elementos host en proyectos de nivel de aplicación, vea Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución.
Para agregar un control de formularios Windows Forms en tiempo de ejecución
Use un método con el nombre Add<clase del control> (donde clase del control es el nombre de clase del control de Windows Forms que se desea agregar; por ejemplo AddButton()).
[!NOTA]
En proyectos de complemento en la aplicación que el destino .NET Framework 4 o .NET Framework 4.5, debe agregar una referencia al ensamblado Microsoft.Office.Tools.Excel.v4.0.Utilities.dll o Microsoft.Office.Tools.Word.v4.0.Utilities.dll para poder tener acceso a los métodos de Add<clase de control>.
En el ejemplo de código siguiente se muestra cómo agregar un control Button al primer párrafo del documento activo usando un complemento de Word.
Dim salesButton As Microsoft.Office.Tools.Word.Controls.Button Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) extendedDocument.Paragraphs(1).Range.InsertParagraphBefore() salesButton = extendedDocument.Controls.AddButton( _ extendedDocument.Paragraphs(1).Range, 75, 18, "salesButton") salesButton.Text = "Calculate Sales"
Microsoft.Office.Tools.Word.Controls.Button salesButton; Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); extendedDocument.Paragraphs[1].Range.InsertParagraphBefore(); salesButton = extendedDocument.Controls.AddButton( extendedDocument.Paragraphs[1].Range, 75, 18, "salesButton"); salesButton.Text = "Calculate Sales";
Vea también
Tareas
Cómo: Cambiar el tamaño de controles en celdas de hojas de cálculo
Conceptos
Información general sobre controles de formularios Windows Forms en documentos de Office
Agregar controles a documentos de Office en tiempo de ejecución