Share via


操作ウィンドウでのコントロール レイアウトの管理

既定では、操作ウィンドウは、文書またはワークシートの右側にドッキングされますが、左、上、または下にドッキングできます。 複数のユーザー コントロールを使用している場合は、操作ウィンドウにユーザー コントロールを正しく積み重ねるコードを書くことができます。 詳しくは、「操作ウィンドウの概要」をご覧ください。

適用対象: このトピックの情報は、Excel および Word のドキュメント レベルのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

コントロールの積み重ね順は、操作ウィンドウが垂直方向または水平方向のどちらにドッキングされているかによって異なります。

Note

ユーザーが実行時に操作ウィンドウのサイズを変更した場合に、操作ウィンドウと一緒にサイズ変更するようにコントロールを設定できます。 Windows フォーム コントロールの Anchor プロパティを使用すると、コントロールを操作ウィンドウに固定できます。 詳細については、「方法 : Windows フォームにコントロールを固定する」を参照してください。

Note

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。

操作ウィンドウのコントロールの積み重ね順を設定するには

  1. 複数のユーザー コントロールまたは入れ子になった操作ウィンドウのコントロールを持つ操作ウィンドウを含む、Microsoft Office Word の文書レベルのプロジェクトを開きます。 詳細については、「方法: Word 文書または Excel ブックに操作ウィンドウを追加する」を参照してください。

  2. ソリューション エクスプローラーThisDocument.cs または ThisDocument.vb を右クリックしてから、[コードの表示] をクリックします。

  3. 操作ウィンドウの OrientationChanged イベント ハンドラーで、操作ウィンドウの向きが水平になっているかどうかを確認します。

    private void ActionsPane_OrientationChanged(object sender, EventArgs e)
    {
        if (ActionsPane.Orientation == Orientation.Horizontal)
        {
    
  4. 向きが水平の場合は、操作ウィンドウのコントロールを左から積み重ねます。それ以外の場合は、上から積み重ねます。

            this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromLeft;
        }
        else
        {
            this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop;
        }
    }
    
  5. C# では、ActionsPane のイベント ハンドラーを Startup イベント ハンドラーに追加する必要があります。 イベント ハンドラーの作成方法について詳しくは、「方法: Office プロジェクトでイベント ハンドラーを作成する」をご覧ください。

    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        this.ActionsPane.OrientationChanged += new EventHandler(ActionsPane_OrientationChanged);
    }
    
  6. プロジェクトを実行し、操作ウィンドウが文書の上部にドッキングされているときは操作ウィンドウのコントロールが左から右に積み重ねられていること、また操作ウィンドウが文書の右側にドッキングされているときはコントロールが上から下に積み重ねられていることを確認します。

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 文書レベルのプロジェクト。