如何:管理操作窗格上的控件布局
更新:2007 年 11 月
适用对象 |
---|
本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。 项目类型
Microsoft Office 版本
有关更多信息,请参见按应用程序和项目类型提供的功能。 |
默认情况下,操作窗格停靠在文档或工作表的右侧;但也可以将其停靠在左侧、顶部或底部。如果使用多个用户控件,则可以编写代码以在操作窗格上适当地堆叠用户控件。有关更多信息,请参见操作窗格概述。
这些控件的堆叠顺序取决于操作窗格是垂直停靠还是水平停靠。
说明: |
---|
如果用户在运行时会调整操作窗格的大小,则可以设置控件,使其可随操作窗格一起调整大小。可以使用 Windows 窗体控件的 Anchor 属性将控件锚定到操作窗格。有关更多信息,请参见 如何:在 Windows 窗体上锚定控件。 |
可以使用 演练:根据用户上下文更改操作窗格 中的示例代码创建以下过程所需的多个操作窗格控件。
说明: |
---|
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。您安装的 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 的事件处理程序。有关创建事件处理程序的信息,请参见如何:使用 Visual Studio Tools for 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 文档级项目。