ActionsPane.OrientationChanged 事件
當執行窗格的 Orientation 變更時發生。
命名空間: Microsoft.Office.Tools
組件: Microsoft.Office.Tools.Common (在 Microsoft.Office.Tools.Common.dll 中)
語法
'宣告
Event OrientationChanged As EventHandler
event EventHandler OrientationChanged
備註
這個事件發生於使用者將 [文件動作] 工作窗格移動至相對於文件的新位置時。
範例
下列程式碼會示範如何建立會自動調整內容對齊的簡單執行窗格。當使用者將執行窗格移至應用程式視窗的不同部分時,OrientationChanged 事件的事件處理常式會使用 Orientation 屬性來決定執行窗格中新的控制項堆疊順序。若要執行此程式碼,請從 Microsoft Office 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;
}
}
.NET Framework 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。