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 | 取得或設定設計執行窗格的目標維度 (Dimension)。 | |
AutoScaleMode | 取得或設定執行窗格的自動縮放比例模式。 | |
AutoScroll | 取得或設定值,這個值表示執行窗格是否可讓使用者捲動至任何放置在可視界限以外的控制項。 | |
AutoScrollMargin | 取得或設定執行窗格自動捲動邊界的大小。 | |
AutoScrollMinSize | 取得或設定執行窗格自動捲動的最小大小。 | |
AutoScrollOffset | 取得或設定執行窗格在呼叫 ScrollControlIntoView 方法時所捲動到的位置。 | |
AutoScrollPosition | 取得或設定執行窗格自動捲動的位置。 | |
AutoSize | 基礎架構。執行窗格不支援這個屬性。 | |
AutoSizeMode | 取得或設定執行窗格控制項自動調整其大小所根據的模式。 | |
AutoValidate | 取得或設定值,這個值表示執行窗格中的控制項是否會在焦點變更時自動進行驗證。 | |
BackColor | 取得或設定執行窗格的背景色彩。 | |
BackgroundImage | 取得或設定在執行窗格中顯示的背景影像。 | |
BackgroundImageLayout | 取得或設定背景影像在執行窗格中的位置和行為。 | |
BindingContext | 取得或設定物件,此物件用所有繫結於相同同步資料來源之執行窗格上的所有控制項。 | |
BorderStyle | 取得或設定執行窗格的框線樣式。 | |
Bottom | 取得執行窗格下邊緣和其容器工作區 (Client Area) 上邊緣之間的距離 (以像素為單位)。 | |
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 | 取得或設定執行窗格左邊緣和其容器工作區 (Client Area) 左邊緣之間的距離 (以像素為單位)。 | |
Location | 取得或設定執行窗格相對於其容器左上角的左上角座標。 | |
Margin | 取得或設定控制項之間的空格。 | |
MaximumSize | 取得或設定 GetPreferredSize 可以指定的上限大小。 | |
MinimumSize | 取得或設定 GetPreferredSize 可以指定的下限大小。 | |
Name | 取得或設定控制項的名稱。 | |
Orientation | 取得值,這個值表示執行窗格是垂直配置還是水平配置。 | |
Padding | 取得或設定執行窗格內的邊框間距。 | |
Parent | 取得或設定執行窗格的父容器。 | |
ParentForm | 基礎架構。執行窗格不支援這個屬性。 | |
PreferredSize | 取得能夠容納執行窗格的矩形區域大小。 | |
ProductName | 取得包含執行窗格之組件的產品名稱。 | |
ProductVersion | 取得包含執行窗格之組件的版本。 | |
RecreatingHandle | 取得值,指出執行窗格控制項目前是否正重新建立其控制代碼。 | |
Region | 取得或設定與執行窗格關聯的視窗區域。 | |
Right | 取得執行窗格右邊緣和其容器工作區 (Client Area) 左邊緣之間的距離 (以像素為單位)。 | |
RightToLeft | 取得或設定值,指出執行窗格的元素是否對齊,以支援使用由右至左字型的地區設定。 | |
Site | 取得或設定執行窗格的站台。 | |
Size | 取得或設定執行窗格控制項的高度和寬度。 | |
StackOrder | 取得或設定值,表示控制項在執行窗格上堆疊的方向。 | |
TabIndex | 取得或設定執行窗格在其容器中的定位順序。 | |
TabStop | 取得或設定值,這個值表示使用者是否能使用 TAB 鍵,將焦點提供給執行窗格。 | |
Tag | 取得或設定包含有關執行窗格的資料的物件。 | |
Text | 基礎架構。執行窗格不支援這個屬性。 | |
Top | 取得或設定執行窗格控制項上邊緣和其容器工作區 (Client Area) 上邊緣之間的距離 (以像素為單位)。 | |
TopLevelControl | 基礎架構。執行窗格不支援這個屬性。 | |
UseWaitCursor | 取得或設定值,這個值表示是否將等待游標用於執行窗格和所有子控制項。 | |
VerticalScroll | 取得與垂直捲軸相關聯的特性。 | |
Visible | 取得或設定值,這個值會指出 ActionsPane 是否為可見的。 | |
Width | 取得或設定控制項的寬度。 | |
WindowTarget | 基礎架構。執行窗格不支援這個屬性。 |
回頁首
方法
名稱 | 說明 | |
---|---|---|
BeginInit | 基礎架構。 | |
BeginInvoke(Delegate) | 在建立執行窗格控制項基礎控制代碼的執行緒上,以非同步方式執行指定的委派。 | |
BeginInvoke(Delegate, array<Object[]) | 在建立執行窗格控制項基礎控制代碼的執行緒上,以指定的引數非同步執行指定的委派。 | |
BringToFront | 將執行窗格帶到疊置順序的前面。 | |
Clear | 會從文件中斷這些動作窗格方案的連結。 | |
Contains | 傳回值,這個值表示指定的控制項是否為執行窗格的子系。 | |
CreateControl | 強制建立可見執行窗格,包含建立控制代碼和任何可見子控制項。 | |
CreateGraphics | 建立執行窗格控制項的 Graphics。 | |
Dispose | 執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。 (繼承自 IDisposable)。 | |
DoDragDrop | 開始拖放作業。 | |
DrawToBitmap | 支援呈現為指定的點陣圖。 | |
EndInit | 基礎架構。 | |
EndInvoke | 擷取指定非同步操作的傳回值。 | |
FindForm | 擷取執行窗格控制項所在的表單。 | |
Focus | 將輸入焦點設為執行窗格。 | |
GetChildAtPoint(Point) | 擷取位於指定座標的子控制項。 | |
GetChildAtPoint(Point, GetChildAtPointSkip) | 擷取位於指定座標上的子控制項,指定是否要忽略特定型別的子控制項。 | |
GetContainerControl | 傳回父控制項的控制項鏈結上的下一個 ContainerControl。 | |
GetNextControl | 擷取子控制項定位順序中前後的下一個控制項。 | |
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 | 將指定的螢幕點的位置計算為工作區座標 (Client Coordinate)。 | |
PointToScreen | 將指定的工作區點的位置計算為螢幕座標。 | |
PreProcessControlMessage | 先於訊息迴圈中前置處理鍵盤或輸入訊息後,再分派這些訊息。 | |
PreProcessMessage | 先於訊息迴圈中前置處理鍵盤或輸入訊息後,再分派這些訊息。 | |
RectangleToClient | 以工作區座標計算指定的螢幕矩形大小和位置。 | |
RectangleToScreen | 以螢幕座標計算指定的工作區矩形大小和位置。 | |
Refresh | 強制執行窗格使其工作區失效,並且立即重繪其本身和任何子控制項。 | |
ResetBackColor | 基礎架構。執行窗格不支援這個方法。 | |
ResetBindings | 基礎架構。執行窗格不支援這個方法。 | |
ResetCursor | 基礎架構。執行窗格不支援這個方法。 | |
ResetFont | 基礎架構。執行窗格不支援這個方法。 | |
ResetForeColor | 基礎架構。執行窗格不支援這個方法。 | |
ResetImeMode | 基礎架構。執行窗格不支援這個方法。 | |
ResetRightToLeft | 基礎架構。執行窗格不支援這個方法。 | |
ResetText | 基礎架構。執行窗格不支援這個方法。 | |
ResumeLayout() | 繼續平常的配置邏輯。 | |
ResumeLayout(Boolean) | 繼續平常的配置邏輯,選擇性地強制暫止配置要求的立即配置。 | |
Scale | 根據指定的縮放比例來縮放執行窗格和所有子控制項。 | |
ScrollControlIntoView | 將指定的子控制項捲動至檢視處。 | |
Select | 啟動執行窗格。 | |
SelectNextControl | 啟動下一個控制項。 | |
SendToBack | 將執行窗格控制項傳送到疊置順序的後面。 | |
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 Forms 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;
}
}