ActionsPane 接口
表示 Word 或 Excel 的文档级自定义项中**“文档操作”**任务窗格的自定义用户界面。
命名空间: Microsoft.Office.Tools
程序集: Microsoft.Office.Tools.Common(在 Microsoft.Office.Tools.Common.dll 中)
语法
声明
<GuidAttribute("b835a67a-c3c0-45ba-9a3f-c878bf531dd5")> _
Public Interface ActionsPane _
Inherits IDisposable
[GuidAttribute("b835a67a-c3c0-45ba-9a3f-c878bf531dd5")]
public interface ActionsPane : IDisposable
ActionsPane 类型公开以下成员。
属性
名称 | 说明 | |
---|---|---|
AccessibilityObject | 获取分配给操作窗格的 AccessibleObject。 | |
AccessibleDefaultActionDescription | 获取或设置操作窗格的默认操作描述。此说明由辅助功能客户端应用程序使用。 | |
AccessibleDescription | 获取或设置操作窗格的辅助性说明。此说明由辅助功能客户端应用程序使用。 | |
AccessibleName | 获取或设置操作窗格的可访问名称。此名称由辅助功能客户端应用程序使用。 | |
AccessibleRole | 获取或设置操作窗格的辅助角色。 | |
ActiveControl | 获取或设置操作窗格上的活动控件。 | |
AllowDrop | 获取或设置一个值,该值表示操作窗格是否可以接受用户拖放到它上面的数据。 | |
Anchor | 获取或设置操作窗格绑定到的容器的边缘并确定用户控件如何随其父级一起调整大小。 | |
AutoRecover | 获取或设置一个值,该值指示操作窗格解决方案与文档分离后,是否会自动重新附到文档上。 | |
AutoScaleDimensions | 获取或设置操作窗格的设计尺寸。 | |
AutoScaleMode | 获取或设置操作窗格的自动缩放模式。 | |
AutoScroll | 获取或设置一个值指示是否操作窗格允许用户滚动到任何放置在其可见边界之外的控件。 | |
AutoScrollMargin | 获取或设置操作窗格自动滚动边距的大小。 | |
AutoScrollMinSize | 获取或设置操作窗格自动滚动的最小大小。 | |
AutoScrollOffset | 获取或设置调用 ScrollControlIntoView 方法时操作窗格的滚动位置。 | |
AutoScrollPosition | 获取或设置为操作窗格自动滚动定位的位置。 | |
AutoSize | 基础结构。操作窗格不支持此属性。 | |
AutoSizeMode | 获取或设置操作窗格控件自动调整自身大小的模式。 | |
AutoValidate | 获取或设置一个值,该值指示当焦点更改时是否自动验证此操作窗格内的控件。 | |
BackColor | 获取或设置该操作窗格的背景颜色。 | |
BackgroundImage | 获取或设置该操作窗格的背景图像。 | |
BackgroundImageLayout | 获取或设置操作窗格中的背景图像的位置和行为。 | |
BindingContext | 获取或设置一个对象,该对象使所有控件处于和同一数据源同步绑定的操作窗格上。 | |
BorderStyle | 获取或设置该操作窗格的边框式样。 | |
Bottom | 获取操作窗格下边缘与其容器的工作区上边缘之间的距离(以像素为单位)。 | |
Bounds | 获取或设置操作窗格控件(包括其非工作区元素)相对于其父控件的大小和位置(以像素为单位)。 | |
CanFocus | 获取指示操作窗格是否可以接收焦点的值。 | |
CanSelect | 获取指示操作窗格是否可以选中的值。 | |
Capture | 获取或设置一个值,该值表示操作窗格是否已捕获鼠标。 | |
CausesValidation | 获取或设置一个值指示是否操作窗格会引起在任何需要在接收焦点时执行验证的控件上执行验证。 | |
ClientRectangle | 获取表示操作窗格的工作区的矩形。 | |
ClientSize | 获取或设置操作窗格的工作区的高度和宽度。 | |
CompanyName | 获取包含操作窗格的应用程序的公司名称或创建者。 | |
Container | 基础结构。操作窗格不支持此属性。 | |
ContainsFocus | 获取一个值,该值指示操作窗格或它的一个子控件当前是否有输入焦点。 | |
ContextMenu | 获取或设置与操作窗格关联的快捷菜单。 | |
ContextMenuStrip | 获取或设置与操作窗格关联的 ContextMenuStrip。 | |
Controls | 获取操作窗格种包含的控件集。 | |
Created | 获取指示操作窗格是否已经创建的值。 | |
CurrentAutoScaleDimensions | 获取屏幕的当前运行时尺寸。 | |
Cursor | 获取或设置当鼠标指针位于操作窗格上显示的光标。 | |
DataBindings | 为该操作窗格获取数据绑定。 | |
DisplayRectangle | 获取表示操作窗格的显示区域的矩形。 | |
Disposing | 获取指示操作是否在释放进程中的值。 | |
Dock | 获取或设置哪个操作窗格控件边停靠到其父控件上并决定操作窗格控件如何与其父控件一起调整大小。 | |
DockPadding | 基础结构。操作窗格不支持此属性。 | |
Enabled | 获取或设置一个值,该值表示操作窗格是否可以对用户交互作出响应。 | |
Focused | 获取指示操作窗格是否有输入焦点的值。 | |
Font | 获取或设置由操作窗格显示的文本的字体。 | |
ForeColor | 获取或设置操作窗格的前景色。 | |
Handle | 获取操作窗格绑定到的窗口句柄。 | |
HasChildren | 获取一个值,该值指示控件是否包含一个或多个子控件。 | |
Height | 获取或设置操作窗格控件的高度。 | |
HorizontalScroll | 获取与水平滚动条相关联的特性。 | |
ImeMode | 获取或设置操作窗格的输入法编辑器 (IME) 模式。 | |
InvokeRequired | 获取一个值,该值指示调用方在对操作窗格控件进行方法调用时是否必须调用 Invoke 方法,因为调用方位于创建操作窗格控件所在的线程以外的线程中。 | |
IsAccessible | 获取或设置一个值,该值表示操作窗格对辅助功能应用程序是否可见。 | |
IsDisposed | 获取指示操作窗口控件是否已被释放的值。 | |
IsHandleCreated | 获取指示操作窗格控件是否有与其关联的句柄的值。 | |
IsMirrored | 获取指示操作窗格是否被镜像的值。 | |
LayoutEngine | 获取操作窗格控件的布局引擎的缓存实例。 | |
Left | 获取或设置操作窗格控件左边缘与其容器的工作区左边缘之间的距离(以像素为单位)。 | |
Location | 获取或设置该操作窗格的左上角相对于其容器的左上角的坐标。 | |
Margin | 获取或设置控件之间的空间。 | |
MaximumSize | 获取或设置大小,该大小是 GetPreferredSize 可以指定的上限。 | |
MinimumSize | 获取或设置大小,该大小是 GetPreferredSize 可以指定的下限。 | |
Name | 获取或设置操作窗格控件的名称。 | |
Orientation | 获取一个值,该值指示垂直还是水平放置操作窗格。 | |
Padding | 获取或设置操作窗格的 padding 属性。 | |
Parent | 获取或设置操作窗格的父容器。 | |
ParentForm | 基础结构。操作窗格不支持此属性。 | |
PreferredSize | 获取操作窗格适合的矩形区域大小。 | |
ProductName | 获取包含操作窗格的程序集的产品名称。 | |
ProductVersion | 获取包含操作窗格的程序集的版本。 | |
RecreatingHandle | 获取指示操作窗口控件当前是否重新创建其句柄的值。 | |
Region | 获取或设置与操作窗格关联的窗口区域。 | |
Right | 获取操作窗格右边缘与其容器的工作区左边缘之间的距离(以像素为单位)。 | |
RightToLeft | 获取或设置一个值,该值表示操作窗格是否支持控件元素支持从右向左的字体设置。 | |
Site | 获取或设置操作窗格的站点。 | |
Size | 获取或设置操作窗格控件的高度和宽度。 | |
StackOrder | 获取或设置一个值,该值指示控件在操作窗格上的堆叠方向。 | |
TabIndex | 获取或设置在操作窗格的容器的控件的 Tab 键顺序。 | |
TabStop | 获取或设置一个值指示是否用户能使用 Tab 键将焦点置于该操作窗格上。 | |
Tag | 获取或设置包含有关操作窗格的数据的对象。 | |
Text | 基础结构。操作窗格不支持此属性。 | |
Top | 获取或设置操作窗格控件上边缘与其容器的工作区上边缘之间的距离(以像素为单位)。 | |
TopLevelControl | 基础结构。操作窗格不支持此属性。 | |
UseWaitCursor | 获取或设置一个值指示是否将使用等待光标用于当前操作窗格以及所有子控件。 | |
VerticalScroll | 获取与垂直滚动条相关联的特性。 | |
Visible | 获取或设置一个值,该值指示 ActionsPane 是否可见。 | |
Width | 获取或设置操作窗格控件的宽度。 | |
WindowTarget | 基础结构。操作窗格不支持此属性。 |
页首
方法
名称 | 说明 | |
---|---|---|
BeginInit | 基础结构。 | |
BeginInvoke(Delegate) | 在创建操作窗格控件的基础句柄所在线程上异步执行指定委托。 | |
BeginInvoke(Delegate, array<Object[]) | 在创建操作窗格控件的基础句柄所在线程上,用指定的参数异步执行指定委托。 | |
BringToFront | 将操作窗格控件带到 Z 顺序的前面。 | |
Clear | 从文档中分离操作窗格解决方案。 | |
Contains | 返回一个值,该值指示指定的控件是否是操作窗格的子级。 | |
CreateControl | 强制创建可见操作窗格控件,包括创建句柄和任何可见子控件。 | |
CreateGraphics | 为操作窗格控件创建 Graphics。 | |
Dispose | 执行与释放或重置非托管资源相关的应用程序定义的任务。 (继承自 IDisposable。) | |
DoDragDrop | 开始拖放操作。 | |
DrawToBitmap | 支持呈现到指定的位图。 | |
EndInit | 基础结构。 | |
EndInvoke | 检索指定异步操作的返回值。 | |
FindForm | 检索操作窗格所在的窗体。 | |
Focus | 设置集中在活动窗格上输入。 | |
GetChildAtPoint(Point) | 检索位于指定坐标处的子控件。 | |
GetChildAtPoint(Point, GetChildAtPointSkip) | 检索位于指定坐标的子控件,并且指定是否忽略特定类型的子控件。 | |
GetContainerControl | 沿着控件的父控件链向上,返回下一个 ContainerControl。 | |
GetNextControl | 按照子控件的 Tab 键顺序向前或向后检索下一个控件。 | |
GetPreferredSize | 检索适合操作窗格的矩形区域的大小。 | |
Hide | 从任务窗格用户界面中移除 ActionsPane 和控件,同时使任务窗格保持可见。 | |
Invalidate() | 使操作窗格的整个图面无效会导致重绘操作窗格。 | |
Invalidate(Boolean) | 使操作窗格的整个图面无效会导致向操作窗格发送绘制消息。(可选)使分配给操作窗格的子控件无效。 | |
Invalidate(Rectangle) | 使操作窗格的指定区域无效(将其添加到操作窗格的更新区域,下次绘制操作时将重新绘制更新区域),并向操作窗格发送绘制消息。 | |
Invalidate(Region) | 使操作窗格的指定区域无效(将其添加到操作窗格的更新区域,下次绘制操作时将重新绘制更新区域),并向操作窗格发送绘制消息。 | |
Invalidate(Rectangle, Boolean) | 使操作窗格的指定区域无效(将其添加到操作窗格的更新区域,下次绘制操作时将重新绘制更新区域),并向操作窗格发送绘制消息。(可选)使分配给操作窗格的子控件无效。 | |
Invalidate(Region, Boolean) | 使操作窗格的指定区域无效(将其添加到操作窗格的更新区域,下次绘制操作时将重新绘制更新区域),并向操作窗格发送绘制消息。(可选)使分配给操作窗格的子控件无效。 | |
Invoke(Delegate) | 在拥有此操作窗格的基础窗口句柄的线程上执行指定的委托。 | |
Invoke(Delegate, array<Object[]) | 在拥有操作窗格的基础窗口句柄的线程上,用指定的参数列表执行指定委托。 | |
PerformAutoScale | 执行对操作窗格及其子级的缩放。 | |
PerformLayout() | 强制操作窗格将布局逻辑应用于其所有子控件。 | |
PerformLayout(Control, String) | 强制操作窗格将布局逻辑应用于其所有子控件。 | |
PointToClient | 将指定屏幕点的位置计算成工作区坐标。 | |
PointToScreen | 将指定工作区点的位置计算成屏幕坐标。 | |
PreProcessControlMessage | 在调度键盘或输入消息之前,在消息循环内对它们进行预处理。 | |
PreProcessMessage | 在调度键盘或输入消息之前,在消息循环内对它们进行预处理。 | |
RectangleToClient | 计算指定屏幕矩形的大小和位置(以工作区坐标表示)。 | |
RectangleToScreen | 计算指定工作区矩形的大小和位置(以屏幕坐标表示)。 | |
Refresh | 强制操作窗格使其工作区无效并立即重绘自己和任何子控件。 | |
ResetBackColor | 基础结构。操作窗格不支持此方法。 | |
ResetBindings | 基础结构。操作窗格不支持此方法。 | |
ResetCursor | 基础结构。操作窗格不支持此方法。 | |
ResetFont | 基础结构。操作窗格不支持此方法。 | |
ResetForeColor | 基础结构。操作窗格不支持此方法。 | |
ResetImeMode | 基础结构。操作窗格不支持此方法。 | |
ResetRightToLeft | 基础结构。操作窗格不支持此方法。 | |
ResetText | 基础结构。操作窗格不支持此方法。 | |
ResumeLayout() | 恢复正常的布局逻辑。 | |
ResumeLayout(Boolean) | 恢复正常的布局逻辑,可以选择强制对挂起的布局请求立即进行布局。 | |
Scale | 按指定的比例因子缩放操作面板和所有子控件。 | |
ScrollControlIntoView | 将指定的子控件滚动到视图中。 | |
Select | 激活操作窗格。 | |
SelectNextControl | 激活下一个控件。 | |
SendToBack | 将操作窗格控件发送到 Z 顺序的后面。 | |
SetAutoScrollMargin | 设置自动滚动边距的大小。 | |
SetBounds(Int32, Int32, Int32, Int32) | 为操作窗格在指定的位置和大小设定限值。 | |
SetBounds(Int32, Int32, Int32, Int32, BoundsSpecified) | 为窗格在指定的位置和大小设定限值。 | |
Show | 如果该任务窗格不可见,则显示任务窗格上的 ActionsPane,包括已添加到 ActionsPane 中的所有控件,但不显示该任务窗格。 | |
SuspendLayout | 为操作窗格暂时挂起布局逻辑。 | |
Update | 使操作窗格重绘其工作区内的无效区域。 | |
Validate() | 通过顺序引发 Validating 和 Validated 事件验证操作窗格的内容。 | |
Validate(Boolean) | 验证操作窗格的内容;取决于是否打开了自动验证。 | |
ValidateChildren() | 使支持验证的所有子控件都对其数据进行验证。 | |
ValidateChildren(ValidationConstraints) | 使支持验证的所有子控件都对其数据进行验证。 |
页首
事件
名称 | 说明 | |
---|---|---|
AutoSizeChanged | 基础结构。操作窗格不支持此事件。 | |
AutoValidateChanged | 当 AutoValidate 属性更改时发生。 | |
BackColorChanged | 当 BackColor 属性的值更改时发生。 | |
BackgroundImageChanged | 当 BackgroundImage 属性的值更改时发生。 | |
BackgroundImageLayoutChanged | 当 BackgroundImageLayout 属性更改时发生。 | |
BindingContextChanged | 当 BindingContext 属性的值更改时发生。 | |
CausesValidationChanged | 当 CausesValidation 属性的值更改时发生。 | |
ChangeUICues | 焦点或键盘用户界面(UI)提示更改时发生。 | |
Click | 在单击操作窗格时发生。 | |
ClientSizeChanged | 当 ClientSize 属性的值更改时发生。 | |
ContextMenuChanged | 当 ContextMenu 属性的值更改时发生。 | |
ContextMenuStripChanged | 当 ContextMenuStrip 属性的值更改时发生。 | |
ControlAdded | 在将新控件添加到 Controls 集合时发生。 | |
ControlRemoved | 在从 Controls 集合移除控件时发生。 | |
CursorChanged | 当 Cursor 属性的值更改时发生。 | |
Disposed | 在释放操作窗格时发生。 | |
DockChanged | 当 Dock 属性的值更改时发生。 | |
DoubleClick | 在双击操作窗格时发生。 | |
DragDrop | 拖放操作完成时发生。 | |
DragEnter | 在将对象拖入操作窗格的边界时发生。 | |
DragLeave | 在操作窗格的边界外拖动对象时发生。 | |
DragOver | 在操作窗格的边界上拖动对象时发生。 | |
EnabledChanged | 在 Enabled 属性值更改后发生。 | |
Enter | 在进入操作窗格时发生。 | |
FontChanged | 在 Font 属性值更改时发生。 | |
ForeColorChanged | 在 ForeColor 属性值更改时发生。 | |
GiveFeedback | 在执行拖动操作期间发生。 | |
GotFocus | 在操作窗格收到焦点时发生。 | |
HandleCreated | 在为操作窗格创建句柄时发生。 | |
HandleDestroyed | 在操作窗格的句柄处于销毁过程中时发生。 | |
HelpRequested | 在用户请求操作窗格的帮助时发生。 | |
ImeModeChanged | 当 ImeMode 属性更改时发生。 | |
Invalidated | 在操作窗格的显示需要重绘时发生。 | |
KeyDown | 当操作窗格具有焦点并按下某个键时发生。 | |
KeyPress | 当操作窗格具有焦点并按下某个键时发生。 | |
KeyUp | 当操作窗格具有焦点并释放某个键时发生。 | |
Layout | 在操作窗格应重新定位其子控件时发生。 | |
Leave | 在输入点离开操作窗格时发生。 | |
Load | 在操作窗格首次变得可见之前发生。 | |
LocationChanged | 在 Location 属性值更改后发生。 | |
LostFocus | 在操作窗格失去焦点时发生。 | |
MarginChanged | 在操作窗格的边距发生更改时发生。 | |
MouseCaptureChanged | 在操作窗格失去或获得鼠标捕获时发生。 | |
MouseClick | 在使用鼠标单击操作窗格时发生。 | |
MouseDoubleClick | 在使用鼠标双击操作窗格时发生。 | |
MouseDown | 当鼠标指针位于操作窗格上并按下鼠标键时发生。 | |
MouseEnter | 在鼠标指针进入操作窗格时发生。 | |
MouseHover | 在鼠标指针悬停在操作窗格上时发生。 | |
MouseLeave | 在鼠标指针离开操作窗格时发生。 | |
MouseMove | 在鼠标指针移动到操作窗格时发生。 | |
MouseUp | 在鼠标指针在操作窗格上并释放鼠标键时发生。 | |
MouseWheel | 在移动鼠标滚轮并且操作窗格有焦点时发生。 | |
Move | 在移动操作窗格时发生。 | |
OrientationChanged | 当操作窗格的 Orientation 改变时发生。 | |
PaddingChanged | 在操作窗格的填充发生改变时发生。 | |
Paint | 在重绘操作窗格时发生。 | |
ParentChanged | 在 Parent 属性值更改时发生。 | |
PreviewKeyDown | 在焦点位于此控件上的情况下,当有按键动作时发生(在 KeyDown 事件之前发生)。 | |
QueryAccessibilityHelp | 在 AccessibleObject 为辅助功能应用程序提供帮助时发生。 | |
QueryContinueDrag | 在拖放操作期间发生,并且允许拖动源确定是否应取消拖放操作。 | |
RegionChanged | 当 Region 属性的值更改时发生。 | |
Resize | 在重设操作窗格的大小时发生。 | |
RightToLeftChanged | 在 RightToLeft 属性值更改时发生。 | |
Scroll | 用户或代码滚动工作区时发生。 | |
SizeChanged | 在 Size 属性值更改时发生。 | |
StyleChanged | 当操作窗格的样式改变时发生。 | |
SystemColorsChanged | 系统颜色更改时发生。 | |
TabIndexChanged | 在 TabIndex 属性值更改时发生。 | |
TabStopChanged | 在 TabStop 属性值更改时发生。 | |
TextChanged | 基础结构。操作窗格不支持此事件。 | |
Validated | 在完成对操作窗格的验证时发生。 | |
Validating | 在验证操作窗格时发生。 | |
VisibleChanged | 在 Visible 属性值更改时发生。 |
页首
备注
Excel 或 Word 的每个文档级自定义项公开 ActionsPane 对象。 可以使用此对象自定义文档级项目中任务窗格**“文档操作”**的用户界面。 要获取 ActionsPane 对象,请在项目中使用 ThisDocument 类(对于 Word)或 ThisWorkbook 类(对于 Excel)的 ActionsPane 字段。 有关更多信息,请参见操作窗格概述。
每个 ActionsPane 对象扩展基础的提供可自定义用户接口的 Windows 窗体 UserControl。 大多数 ActionsPane 的成员与基础 UserControl 的成员对应。 使用以下 ActionsPane 成员访问操作窗格特定的功能:
Clear 方法。 使用此方法将操作窗格与文档或工作簿分离开。
AutoRecover 属性。 使用此属性阻止或允许最终用户将操作窗格与文档或工作簿分离。
Orientation 属性。 使用此属性确定操作窗格是停靠在文档或工作薄的顶部或底部还是停靠在文档或工作簿的左侧或右侧。
StackOrder 属性。 使用此属性指定在操作窗格上堆叠控件的方向。
OrientationChanged 事件。 使用此属性确定操作窗格何时停靠到不同位置。
备注
此接口由 Visual Studio Tools for Office Runtime 实现。不应在代码中实现此接口。有关更多信息,请参见 Visual Studio Tools for Office Runtime 概述。
用法
本文档介绍面向 .NET Framework 4 和 .NET Framework 4.5 的 Office 项目中所用此类型的版本。在面向 .NET Framework 3.5 的项目中,此类型可能具有不同的成员,因此本文档为此类型提供的代码示例可能并不适用。有关面向 .NET Framework 3.5 的项目中的此类型的文档,请参见 Visual Studio 2008 文档中的以下参考部分:https://go.microsoft.com/fwlink/?LinkId=160658。
示例
下面的代码示例演示如何创建一个可以自动调整内容对齐方式的简单操作窗格。 当用户在将操作窗格移到应用程序窗口的另一位置的过程中改变了操作窗格的方向时,或者当用户单击操作窗格中的某个 Button 控件时,Orientation 属性用于确定 StackOrder 属性的新值。 若要运行此代码,请从 Excel 文档级项目的 ThisWorkbook_Startup 事件处理程序中调用 InitActionsPane 方法。
Private Sub InitActionsPane()
With Globals.ThisWorkbook.ActionsPane
.Clear()
.Visible = True
.AutoRecover = True
End With
AddHandler Globals.ThisWorkbook.ActionsPane.OrientationChanged, _
AddressOf ActionsPane_OrientationChanged
ResetStackOrder()
' Create the button that will update the stack order.
Dim button1 As New Button()
button1.Text = "Change stack order"
AddHandler button1.Click, AddressOf button1_Click
' Create two more buttons that do nothing.
Dim button2 As New Button()
button2.Text = "Button 2"
Dim button3 As New Button()
button3.Text = "Button 3"
Globals.ThisWorkbook.ActionsPane.Controls.AddRange(New Control() _
{button1, button2, button3})
End Sub
' Switch the stack order according to the current orientation.
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
If Globals.ThisWorkbook.ActionsPane.Orientation = _
Orientation.Horizontal Then
If Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromLeft Then
Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromRight
Else
Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromLeft
End If
Else
If Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromTop Then
Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromBottom
Else
Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromTop
End If
End If
End Sub
Private Sub ActionsPane_OrientationChanged(ByVal sender As Object, _
ByVal e As EventArgs)
ResetStackOrder()
End Sub
' Readjust the stack order so that it matches the current orientation.
Sub ResetStackOrder()
If Globals.ThisWorkbook.ActionsPane.Orientation = _
Orientation.Horizontal Then
If (Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromTop Or _
Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromBottom) Then
Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromLeft
End If
End If
If Globals.ThisWorkbook.ActionsPane.Orientation = _
Orientation.Vertical Then
If (Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromLeft Or _
Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromRight) Then
Globals.ThisWorkbook.ActionsPane.StackOrder = _
Microsoft.Office.Tools.StackStyle.FromTop
End If
End If
End Sub
private void InitActionsPane()
{
Globals.ThisWorkbook.ActionsPane.Clear();
Globals.ThisWorkbook.ActionsPane.Visible = true;
Globals.ThisWorkbook.ActionsPane.AutoRecover = true;
Globals.ThisWorkbook.ActionsPane.OrientationChanged +=
new EventHandler(ActionsPane_OrientationChanged);
ResetStackOrder();
// Create the button that will update the stack order.
Button button1 = new Button();
button1.Text = "Change stack order";
button1.Click += new EventHandler(button1_Click);
// Create two more buttons that do nothing.
Button button2 = new Button();
button2.Text = "Button 2";
Button button3 = new Button();
button3.Text = "Button 3";
Globals.ThisWorkbook.ActionsPane.Controls.AddRange(
new Control[] { button1, button2, button3 });
}
// Switch the stack order according to the current orientation.
void button1_Click(object sender, EventArgs e)
{
if (Globals.ThisWorkbook.ActionsPane.Orientation ==
Orientation.Horizontal)
{
if (Globals.ThisWorkbook.ActionsPane.StackOrder ==
Microsoft.Office.Tools.StackStyle.FromLeft)
{
Globals.ThisWorkbook.ActionsPane.StackOrder =
Microsoft.Office.Tools.StackStyle.FromRight;
}
else
{
Globals.ThisWorkbook.ActionsPane.StackOrder =
Microsoft.Office.Tools.StackStyle.FromLeft;
}
}
else
{
if (Globals.ThisWorkbook.ActionsPane.StackOrder ==
Microsoft.Office.Tools.StackStyle.FromTop)
{
Globals.ThisWorkbook.ActionsPane.StackOrder =
Microsoft.Office.Tools.StackStyle.FromBottom;
}
else
{
Globals.ThisWorkbook.ActionsPane.StackOrder =
Microsoft.Office.Tools.StackStyle.FromTop;
}
}
}
void ActionsPane_OrientationChanged(object sender, EventArgs e)
{
ResetStackOrder();
}
// Readjust the stack order so that it matches the current orientation.
void ResetStackOrder()
{
if (Globals.ThisWorkbook.ActionsPane.Orientation ==
Orientation.Horizontal &&
(Globals.ThisWorkbook.ActionsPane.StackOrder ==
Microsoft.Office.Tools.StackStyle.FromTop ||
Globals.ThisWorkbook.ActionsPane.StackOrder ==
Microsoft.Office.Tools.StackStyle.FromBottom))
{
Globals.ThisWorkbook.ActionsPane.StackOrder =
Microsoft.Office.Tools.StackStyle.FromLeft;
}
if (Globals.ThisWorkbook.ActionsPane.Orientation ==
Orientation.Vertical &&
(Globals.ThisWorkbook.ActionsPane.StackOrder ==
Microsoft.Office.Tools.StackStyle.FromLeft ||
Globals.ThisWorkbook.ActionsPane.StackOrder ==
Microsoft.Office.Tools.StackStyle.FromRight))
{
Globals.ThisWorkbook.ActionsPane.StackOrder =
Microsoft.Office.Tools.StackStyle.FromTop;
}
}