如何:管理操作窗格上的控件布局
默认情况下,操作窗格停靠在文档或工作表的右侧;但也可以将其停靠在左侧、顶部或底部。 如果使用多个用户控件,则可以编写代码以在操作窗格上适当地堆叠用户控件。 有关更多信息,请参见操作窗格概述。
**适用于:**本主题中的信息适用于以下应用程序的文档级项目:Excel 2007 和 Excel 2010;Word 2007 和 Word 2010。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
这些控件的堆叠顺序取决于操作窗格是垂直停靠还是水平停靠。
提示
如果用户在运行时会调整操作窗格的大小,则可以设置控件,使其可随操作窗格一起调整大小。 可以使用 Windows 窗体控件的 Anchor 属性将控件锚定到操作窗格。 有关更多信息,请参见 如何:在 Windows 窗体上锚定控件。
可以使用 演练:根据用户上下文更改操作窗格 中的代码示例创建以下过程所需的多个操作窗格控件。
提示
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 您安装的 Visual Studio 版本以及使用的设置决定了这些元素。 有关更多信息,请参见 使用设置。
设置操作窗格控件的堆叠顺序
打开 Microsoft Office Word 的文档级项目,该项目包含一个具有多个用户控件或嵌套操作窗格控件的操作窗格。 有关更多信息,请参见如何:向 Word 文档添加操作窗格。
在**“解决方案资源管理器”中,右击“ThisDocument.cs”或“ThisDocument.vb”,然后单击“查看代码”**。
在操作窗格的 OrientationChanged 事件处理程序中检查操作窗格的方向是否为水平。
Private Sub ActionsPane_OrientationChanged(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles ActionsPane.OrientationChanged If Me.ActionsPane.Orientation = Orientation.Horizontal Then
private void ActionsPane_OrientationChanged(object sender, EventArgs e) { if (ActionsPane.Orientation == Orientation.Horizontal) {
如果方向为水平,则从左侧开始堆叠操作窗格控件;否则将从顶部开始堆叠控件。
Me.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromLeft Else Me.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop End If End Sub
this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromLeft; } else { this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop; } }
在 C# 中,必须向 Startup 事件处理程序添加 ActionsPane 的事件处理程序。 有关创建事件处理程序的信息,请参见如何:在 Office 项目中创建事件处理程序。
private void ThisDocument_Startup(object sender, System.EventArgs e) { this.ActionsPane.OrientationChanged += new EventHandler(ActionsPane_OrientationChanged); }
运行项目,并确认当操作窗格停靠在文档项部时,操作窗格控件从左到右堆叠,而当操作窗格停靠在文档右侧时,操作窗格控件从上到下堆叠。
示例
Private Sub ActionsPane_OrientationChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles ActionsPane.OrientationChanged
If Me.ActionsPane.Orientation = Orientation.Horizontal Then
Me.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromLeft
Else
Me.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop
End If
End Sub
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
this.ActionsPane.OrientationChanged += new EventHandler(ActionsPane_OrientationChanged);
}
private void ActionsPane_OrientationChanged(object sender, EventArgs e)
{
if (ActionsPane.Orientation == Orientation.Horizontal)
{
this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromLeft;
}
else
{
this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop;
}
}
编译代码
此示例需要:
- 一个具有包含多个用户控件或嵌套操作窗格控件的操作窗格的 Word 文档级项目。