Información general sobre el panel de accionesActions pane overview

Un panel de acciones es un acciones de documentos panel de tareas que se adjunta a un documento específico de Microsoft Office Word o un libro de Microsoft Office Excel.An actions pane is a customizable Document Actions task pane that is attached to a specific Microsoft Office Word document or Microsoft Office Excel workbook. El panel de acciones se hospeda en el panel de tareas de Office junto con otros paneles de tareas integrados, como el origen XML panel de tareas de Excel o el estilos y formato panel de tareas en Word.The actions pane is hosted inside the Office task pane along with other built-in task panes, such as the XML Source task pane in Excel or the Styles and Formatting task pane in Word. Puede utilizar controles de Windows Forms o WPF para diseñar la interfaz de usuario del panel de acciones.You can use Windows Forms controls or WPF controls to design the actions pane user interface.

Se aplica a: La información de este tema se aplica al documento-los proyectos de nivel de Excel y Word.Applies to: The information in this topic applies to document-level projects for Excel and Word. Para obtener más información, consulte características disponibles por tipo de aplicación y el proyecto de Office.For more information, see Features available by Office application and project type.

Puede crear un panel de acciones solo en una personalización de nivel de documento para Word o Excel.You can create an actions pane only in a document-level customization for Word or Excel. No se puede crear un panel de acciones en un complemento de VSTO.You cannot create an actions pane in a VSTO Add-in. Para obtener más información, consulte características disponibles por tipo de aplicación y el proyecto de Office.For more information, see Features available by Office application and project type.

Note

El panel de acciones difiere de los paneles de tareas personalizados.The actions pane differs from custom task panes. Los paneles de tareas personalizados están asociados a la aplicación, no a un documento específico.Custom task panes are associated with the application, not a specific document. Puede crear paneles de tareas personalizados en complementos de VSTO para algunas aplicaciones de Microsoft Office.You can create custom task panes in VSTO Add-ins for some Microsoft Office applications. Para obtener más información, consulte paneles de tareas personalizados.For more information, see Custom task panes.

vínculo a vídeo para una demostración en vídeo relacionada, vea ¿cómo lo hago?: ¿Usar controles WPF dentro de un panel de acciones de Excel? .link to video For a related video demonstration, see How do I: Use WPF controls inside an Excel actions pane?.

Mostrar el panel de accionesDisplay the actions pane

El panel de acciones se representa mediante la clase ActionsPane.The actions pane is represented by the ActionsPane class. Cuando crea un proyecto de nivel de documento, una instancia de esta clase está disponible para el código mediante el uso del campo ActionsPane de la clase ThisWorkbook (para Excel) o ThisDocument (para Word) en el proyecto.When you create a document-level project, an instance of this class is available to your code by using the ActionsPane field of the ThisWorkbook (for Excel) or ThisDocument (for Word) class in your project. Para mostrar el panel de acciones, agregue un control de Windows Forms a la propiedad Controls del campo ActionsPane.To display the actions pane, add a Windows Forms control to the Controls property of the ActionsPane field. En el siguiente ejemplo de código se agrega un control denominado actions al panel de acciones.The following code example adds a control named actions to the actions pane.

this.ActionsPane.Controls.Add(actions);
Me.ActionsPane.Controls.Add(actions)

El panel de acciones se vuelve visible en tiempo de ejecución tan pronto como agregar explícitamente un control a él.The actions pane becomes visible at runtime as soon as you explicitly add a control to it. Una vez que se muestre el panel de acciones, puede agregar o quitar controles de forma dinámica en respuesta a las acciones del usuario.After the actions pane is displayed, you can dynamically add or remove controls in response to the user's actions. Normalmente debe agregar el código para mostrar el panel de acciones en el controlador de eventos Startup de ThisDocument o ThisWorkbook para que el panel de acciones esté visible cuando el usuario abra el documento por primera vez.Typically, you add the code to display the actions pane in the Startup event handler of ThisDocument or ThisWorkbook so that the actions pane is visible when the user first opens the document. Sin embargo, puede que le interese mostrar el panel de acciones solo como respuesta a una acción del usuario en el documento.However, you might want to display the actions pane only in response to a user's action in the document. Por ejemplo, podría agregar código para el evento Click de un control en el documento.For example, you might add the code to the Click event of a control on the document.

Agregar varios controles al panel de accionesAdd multiple controls to the actions pane

Al agregar varios controles al panel de acciones, debe agrupar los controles en un control de usuario y, a continuación, agregue el control de usuario para el Controls propiedad.When you add multiple controls to the actions pane, you should group the controls in a user control and then add the user control to the Controls property. Este proceso incluye los siguientes pasos:This process includes the following steps:

  1. Crear la interfaz de usuario (UI) del panel de acciones agregando un Control Panel de acciones o Control de usuario a su proyecto.Create the user interface (UI) of the actions pane by adding an Actions Pane Control or User Control item to your project. Ambos elementos incluyen una clase UserControl de Windows Forms personalizada.Both of these items include a custom Windows Forms UserControl class. El Control Panel de acciones y Control de usuario elementos son equivalentes; la única diferencia es su nombre.The Actions Pane Control and User Control items are equivalent; the only difference is their name.

  2. Agregue controles de Windows Forms al UserControl mediante el diseñador o escribiendo código.Add Windows Forms controls to the UserControl by using the designer, or by writing code.

    Note

    También puede agregar controles WPF al panel de acciones agregando un WPF UserControl al UserControl de Windows Forms.You can also add WPF controls to the actions pane by adding a WPF UserControl to the Windows Forms UserControl. Para obtener más información, consulte los controles de WPF de uso en soluciones de Office.For more information, see Use WPF controls in Office solutions.

  3. Agregue una instancia del control de usuario personalizado a los controles contenidos en el campo ActionsPane de la clase ThisWorkbook (para Excel) o ThisDocument (para Word) en el proyecto.Add an instance of the custom user control to the controls that are contained in the ActionsPane field of the ThisWorkbook (for Excel) or ThisDocument (for Word) class in your project.

    Para obtener ejemplos que muestran este proceso con más detalle, consulte Cómo: Agregar un panel de acciones a documentos de Word o libros de Excel.For examples that demonstrate this process in more detail, see How to: Add an actions pane to Word documents or Excel workbooks.

Ocultar el panel de accionesHide the actions pane

Aunque la clase ActionsPane tiene un método Hide y una propiedad Visible, no puede quitar el panel de acciones de la interfaz de usuario utilizando ningún miembro de la propia clase ActionsPane.Although the ActionsPane class has a Hide method and a Visible property, you cannot remove the actions pane from the user interface by using any members of the ActionsPane class itself. Una llamada a la Hide método o la configuración de la Visible propiedad false solo oculta los controles en el panel de acciones no oculta el panel de tareas.Calling the Hide method or setting the Visible property to false hides only the controls on the actions pane; it does not hide the task pane.

Para ocultar el panel de tareas en la solución, tiene varias opciones:To hide the task pane in your solution, you have several options:

  • Para Word, establezca el Visible propiedad de la Microsoft.Office.Interop.Word.TaskPane objeto que representa el panel de tareas de acciones de documentos para false.For Word, set the Visible property of the Microsoft.Office.Interop.Word.TaskPane object that represents the Document Actions task pane to false. El siguiente ejemplo de código está diseñado para ejecutarse desde la clase ThisDocument del proyecto.The following code example is intended to be run from the ThisDocument class in your project.

    this.Application.TaskPanes[Word.WdTaskPanes.wdTaskPaneDocumentActions].Visible = false;
    
    Me.Application.TaskPanes(Word.WdTaskPanes.wdTaskPaneDocumentActions).Visible = False
    
  • Para Excel, establezca el DisplayDocumentActionTaskPane propiedad de la Application objeto false.For Excel, set the DisplayDocumentActionTaskPane property of the Application object to false. El siguiente ejemplo de código está diseñado para ejecutarse desde la clase ThisWorkbook del proyecto.The following code example is intended to be run from the ThisWorkbook class in your project.

    this.Application.DisplayDocumentActionTaskPane = false;
    
    Me.Application.DisplayDocumentActionTaskPane = False
    
  • Para Word o Excel, también puede establecer el Visible propiedad de la barra de comandos que representa el panel de tareas para false.For Word or Excel, you can alternatively set the Visible property of the command bar that represents the task pane to false. El siguiente ejemplo de código está diseñado para ejecutarse desde la clase ThisDocument o ThisWorkbook del proyecto.The following code example is intended to be run from the ThisDocument or ThisWorkbook class in your project.

    this.Application.CommandBars["Task Pane"].Visible = false;
    
    Me.Application.CommandBars("Task Pane").Visible = False
    

Borrar el panel de acciones cuando se abre el documentoClear the actions pane when the document is opened

Cuando un usuario guarda el documento mientras el panel de acciones está visible, el panel de acciones está visible cada vez que se abre el documento, independientemente de si el panel de acciones contiene todos los controles.When a user saves the document while the actions pane is visible, the actions pane is visible every time the document is opened, whether or not the actions pane contains any controls. Si desea controlar cuando se muestra, llame al método Clear del campo ActionsPane en el controlador de eventos Startup de ThisDocument o ThisWorkbook para asegurarse de que el panel de acciones no esté visible cuando se abra el documento.If you want to control when it appears, call the Clear method of the ActionsPane field in the Startup event handler of ThisDocument or ThisWorkbook to ensure that the actions pane is not visible when the document is opened.

Determinar cuándo se cierra el panel de accionesDetermine when the actions pane is closed

No se genera ningún evento cuando se cierra el panel de acciones.There is no event that is raised when the actions pane is closed. Aunque la clase ActionsPane tiene un evento VisibleChanged, este evento no se genera cuando el usuario final cierra el panel de acciones.Although the ActionsPane class has a VisibleChanged event, this event is not raised when the end user closes the actions pane. En su lugar, este evento se desencadena cuando se ocultan los controles del panel de acciones mediante una llamada a la Hide método o estableciendo la Visible propiedad false.Instead, this event is raised when the controls on the actions pane are hidden by calling the Hide method or by setting the Visible property to false.

Cuando el usuario cierra el panel de acciones, el usuario puede mostrarlo nuevo realizando uno de los procedimientos siguientes en la interfaz de usuario (UI) de la aplicación.When the user closes the actions pane, the user can display it again by performing one of the following procedures in the user interface (UI) of the application.

Para mostrar el panel de acciones mediante la interfaz de usuario de Word o ExcelTo display the actions pane by using the UI of Word or Excel
  1. En la cinta de opciones, haga clic en el vista ficha.On the Ribbon, click the View tab.

  2. En el mostrar u ocultar grupo, haga clic en el acciones de documentos botón de alternancia.In the Show/Hide group, click the Document Actions toggle button.

Eventos del panel de acciones de programaProgram actions pane events

Puede agregar varios controles de usuario al panel de acciones y, a continuación, escribir código para responder a eventos en el documento mostrando y ocultando los controles de usuario.You can add multiple user controls to the actions pane and then write code to respond to events on the document by showing and hiding the user controls. Si asigna elementos de esquema XML a su documento, puede mostrar determinados controles de usuario en el panel de acciones siempre que el punto de inserción esté dentro de uno de los elementos XML.If you map XML schema elements to your document, you can show certain user controls in the actions pane whenever the insertion point is inside one of the XML elements. Para obtener más información, vea Cómo: Asignar esquemas a documentos de Word en Visual Studio y Cómo: Asignar esquemas a hojas de cálculo en Visual Studio.For more information, see How to: Map schemas to Word documents inside Visual Studio and How to: Map schemas to worksheets inside Visual Studio.

También puede escribir código para responder a los eventos de cualquier objeto, incluyendo eventos de control host, aplicación o documento.You can also write code to respond to the events of any object, including host control, application, or document events. Para obtener más información, vea Tutorial: Programar basándose en eventos de un control NamedRange.For more information, see Walkthrough: Program against events of a NamedRange control.

Enlazar datos a controles en el panel de accionesBind data to controls on the actions pane

Los controles del panel de acciones tienen las mismas capacidades de enlace de datos que los controles de Windows Forms.The controls on the actions pane have the same data binding capabilities as controls on Windows Forms. Puede enlazar los controles a orígenes de datos, como conjuntos de datos, conjuntos de datos con tipo y XML.You can bind the controls to data sources such as data sets, typed data sets, and XML. Para obtener más información, consulte enlace de datos y Windows Forms.For more information, see Data binding and Windows Forms.

Puede enlazar controles en el panel de acciones y controles en el documento al mismo conjunto de datos.You can bind controls on the actions pane and controls on the document to the same dataset. Por ejemplo, puede crear una relación maestro y detalles entre los controles del panel de acciones y los controles de la hoja de cálculo.For example, you can create a master/detail relation between the controls on the actions pane and the controls on the worksheet. Para obtener más información, vea Tutorial: Enlazar datos a controles en un panel de acciones de Excel.For more information, see Walkthrough: Bind data to controls on an Excel actions pane.

Validar los datos de los controles del panel de accionesValidate data in actions pane controls

Si se muestra un cuadro de mensaje en el controlador de eventos Validating de un control en el panel de acciones, el evento podría generarse una segunda vez al pasar el foco del control al cuadro de mensaje.If you display a message box in the Validating event handler of a control on the actions pane, the event might be raised a second time when focus moves from the control to the message box. Para evitar este problema, utilice un control ErrorProvider para mostrar cualquier mensaje de error de validación.To prevent this issue, use an ErrorProvider control to display any validation error messages.

Orden de apilamiento de control de usuarioUser control stacking order

Si está utilizando varios controles de usuario, puede escribir código para apilar correctamente los controles de usuario en el panel de acciones, independientemente de que esté acoplado vertical u horizontalmente.If you are using multiple user controls, you can write code to properly stack the user controls on the actions pane whether it is docked vertically or horizontally. Puede establecer el orden de apilamiento de los controles de usuario en el panel de acciones mediante la enumeración StackStyle de la propiedad StackOrder.You can set the stacking order of the user controls on the actions pane by using the StackStyle enumeration of the StackOrder property. Para obtener más información, vea Cómo: Administrar el diseño de controles en paneles de accionesFor more information, see How to: Manage control layout on actions panes

La propiedad StackOrder puede tomar los siguientes StackStyle valores de enumeración.The StackOrder property can take the following StackStyle enumeration values.

Estilo de apilamientoStacking style DefiniciónDefinition
FromBottomFromBottom Apilar desde la parte inferior del panel de acciones.Stack from the bottom of the actions pane.
FromLeftFromLeft Apilar desde la parte izquierda del panel de acciones.Stack from the left of the actions pane.
FromRightFromRight Apilar desde la parte derecha del panel de acciones.Stack from the right of the actions pane.
FromTopFromTop Apilar desde la parte superior del panel de acciones.Stack from the top of the actions pane.
NingunaNone Sin orden de apilamiento definido; el desarrollador controla el orden.No stacking order defined; order is controlled by the developer.

El código siguiente establece la propiedad StackOrder para que apile los controles de usuario desde la parte superior del panel de acciones.The following code sets the StackOrder property to stack the user controls from the top of the actions pane.

this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop;
Me.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop

Delimitar controlesAnchor controls

Si el usuario cambia el tamaño del panel de acciones en tiempo de ejecución, pueden cambiar el tamaño de los controles con el panel de acciones.If the user resizes the actions pane at runtime, the controls can resize with the actions pane. Puede utilizar la propiedad Anchor de un control de Windows Forms para anclar los controles al panel de acciones.You can use the Anchor property of a Windows Forms control to anchor controls to the actions pane. También puede anclar de la misma manera los controles de Windows Forms al control de usuario.You can also anchor the Windows Forms controls onto the user control in the same manner. Para obtener más información, vea Cómo: Delimitar controles en Windows Forms.For more information, see How to: Anchor controls on Windows Forms.

Cambiar el tamaño del panel de accionesResize the actions pane

No puede cambiar directamente el tamaño de un ActionsPane porque ActionsPane está incrustado en el panel de tareas.You cannot directly change the size of an ActionsPane because the ActionsPane is embedded in the task pane. Sin embargo, puede cambiar el ancho del panel de tareas mediante programación estableciendo la propiedad Width de la Microsoft.Office.Core.CommandBar que representa el panel de tareas.However, you can programmatically change the width of the task pane by setting the Width property of the Microsoft.Office.Core.CommandBar that represents the task pane. Puede cambiar la altura del panel de tareas si está acoplado horizontalmente o si está flotando.You can change the height of the task pane if it is docked horizontally or is floating.

Mediante programación el cambio de tamaño el panel de tareas no se recomienda porque el usuario debería poder seleccionar el tamaño del panel de tareas que mejor se adapte a sus necesidades.Programmatically resizing the task pane is not recommended because the user should be able to select the task pane size that best suits their needs. Sin embargo, si tiene que cambiar el ancho del panel de tareas, podría utilizar el siguiente código para hacerlo.However, if you must resize the width of the task pane, you could use the following code to achieve this task.

this.CommandBars["Task Pane"].Width = 200;
Me.CommandBars("Task Pane").Width = 200

Cambiar la posición del panel de accionesReposition the actions pane

No puede cambiar directamente la posición del ActionsPane porque está incrustado en el panel de tareas.You cannot directly reposition the ActionsPane because it is embedded in the task pane. Sin embargo, puede mover el panel de tareas mediante programación estableciendo la propiedad Position de la Microsoft.Office.Core.CommandBar que representa el panel de tareas.However, you can programmatically move the task pane by setting the Position property of the Microsoft.Office.Core.CommandBar that represents the task pane.

No se recomienda volver a colocar el panel de tareas mediante programación porque el usuario debería poder elegir la posición del panel en la pantalla que mejor se adapte a sus necesidades.Programmatically repositioning the task pane is not recommended because the user should be able to choose the task pane position on the screen that best suits his or her needs. Sin embargo, si tiene que mover el panel de tareas hasta una posición concreta, podría utilizar el siguiente código para hacerlo.However, if you must move the task pane to a particular position, you could use the following code to achieve this task.

this.CommandBars["Task Pane"].Position =
    Microsoft.Office.Core.MsoBarPosition.msoBarLeft;
Me.CommandBars("Task Pane").Position = _
    Microsoft.Office.Core.MsoBarPosition.msoBarLeft

Note

Los usuarios finales pueden cambiar manualmente la posición del panel de tareas en cualquier momento.End users can manually reposition the task pane at any time. No hay ninguna manera de garantizar que el panel de tareas permanezca acoplado en la posición que indique mediante programación.There is no way to ensure that the task pane will remain docked at the position you indicate programmatically. Sin embargo, puede comprobar los cambios de orientación y asegurarse de que los controles del panel de acciones se apilen en la dirección correcta.However, you can check for orientation changes and ensure that the controls on the actions pane are stacked in the correct direction. Para obtener más información, vea Cómo: Administrar el diseño de controles en paneles de acciones.For more information, see How to: Manage control layout on actions panes.

Establecer el Top y Left propiedades de la ActionsPane no cambia su posición porque el ActionsPane objeto está incrustado en el panel de tareas.Setting the Top and Left properties of the ActionsPane doesn't change its position because the ActionsPane object is embedded in the task pane.

Si el panel de tareas no está acoplado, puede establecer las propiedades Top y Left de Microsoft.Office.Core.CommandBar que representa el panel de tareas.If the task pane is not docked, you can set the Top and Left properties of the Microsoft.Office.Core.CommandBar that represents the task pane. El siguiente código mueve un panel de tareas desacoplado a la esquina superior izquierda del documento.The following code moves an undocked task pane to the upper-left corner of the document.

if (this.CommandBars["Task Pane"].Position == 
    Microsoft.Office.Core.MsoBarPosition.msoBarFloating)
{
    this.CommandBars["Task Pane"].Top = 0;
    this.CommandBars["Task Pane"].Left = 0;
}
If Me.CommandBars("Task Pane").Position = _
    Microsoft.Office.Core.MsoBarPosition.msoBarFloating Then

    Me.CommandBars("Task Pane").Top = 0
    Me.CommandBars("Task Pane").Left = 0

End If

Vea tambiénSee also