如何:管理操作窗格上的控件布局

默认情况下,操作窗格停靠在文档或工作表的右侧;但也可以将其停靠在左侧、顶部或底部。 如果使用多个用户控件,则可以编写代码以在操作窗格上适当地堆叠用户控件。 有关更多信息,请参见操作窗格概述

**适用于:**本主题中的信息适用于以下应用程序的文档级项目:Excel 2007 和 Excel 2010;Word 2007 和 Word 2010。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

这些控件的堆叠顺序取决于操作窗格是垂直停靠还是水平停靠。

提示

如果用户在运行时会调整操作窗格的大小,则可以设置控件,使其可随操作窗格一起调整大小。 可以使用 Windows 窗体控件的 Anchor 属性将控件锚定到操作窗格。 有关更多信息,请参见 如何:在 Windows 窗体上锚定控件

可以使用 演练:根据用户上下文更改操作窗格 中的代码示例创建以下过程所需的多个操作窗格控件。

提示

以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 您安装的 Visual Studio 版本以及使用的设置决定了这些元素。 有关更多信息,请参见 使用设置

设置操作窗格控件的堆叠顺序

  1. 打开 Microsoft Office Word 的文档级项目,该项目包含一个具有多个用户控件或嵌套操作窗格控件的操作窗格。 有关更多信息,请参见如何:向 Word 文档添加操作窗格

  2. 在**“解决方案资源管理器”中,右击“ThisDocument.cs”“ThisDocument.vb”,然后单击“查看代码”**。

  3. 在操作窗格的 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)
        {
    
  4. 如果方向为水平,则从左侧开始堆叠操作窗格控件;否则将从顶部开始堆叠控件。

            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;
        }
    }
    
  5. 在 C# 中,必须向 Startup 事件处理程序添加 ActionsPane 的事件处理程序。 有关创建事件处理程序的信息,请参见如何:在 Office 项目中创建事件处理程序

    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        this.ActionsPane.OrientationChanged += new EventHandler(ActionsPane_OrientationChanged);
    }
    
  6. 运行项目,并确认当操作窗格停靠在文档项部时,操作窗格控件从左到右堆叠,而当操作窗格停靠在文档右侧时,操作窗格控件从上到下堆叠。

示例

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 文档级项目。

请参见

任务

如何:向 Excel 工作簿添加操作窗格

如何:向 Word 文档添加操作窗格

演练:从操作窗格将文本插入到文档中

演练:根据用户上下文更改操作窗格

其他资源

操作窗格概述