ActionsPane 類別 (2007 系統)
更新:2007 年 11 月
為自訂 Microsoft Office Word 和 Microsoft Office Excel 的文件層級自訂中的 [文件動作] 工作窗格,提供實作 (Implementation) 的類別 (Class)。
命名空間: Microsoft.Office.Tools
組件: Microsoft.Office.Tools.Common.v9.0 (在 Microsoft.Office.Tools.Common.v9.0.dll 中)
語法
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class ActionsPane _
Inherits RemoteComponent _
Implements ISupportInitializeControl, ISupportInitialize
Dim instance As ActionsPane
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class ActionsPane : RemoteComponent,
ISupportInitializeControl, ISupportInitialize
備註
如需建立 Word 和 Excel 的文件層級自訂中之執行窗格的詳細資訊,請參閱執行窗格概觀。
範例
下列程式碼會示範如何建立會自動調整內容對齊的簡單執行窗格。當使用者將執行窗格移至應用程式視窗的不同部分而變更執行窗格的方向,或使用者按一下執行窗格的 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;
}
}
繼承階層架構
System.Object
Microsoft.VisualStudio.Tools.Office.RemoteComponent
Microsoft.Office.Tools.ActionsPane
執行緒安全
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。