クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2008
Visual Studio
Windows フォーム
Windows フォームについて
 方法 : 実行時に ToolStrip レンダラを設定する

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
Windows フォームのプログラミング
方法 : 実行時に ToolStrip レンダラを設定する

更新 : 2007 年 11 月

カスタムの ProfessionalColorTable クラスを作成することで、ToolStrip コントロールの外観をカスタマイズできます。

次のコード例は、カスタムの ProfessionalColorTable クラスを作成する方法を示しています。このクラスは MenuStrip および ToolStrip コントロールのグラデーションを定義しています。

このコード例を使用するには、アプリケーションをコンパイルして実行します。その後 [Change Colors] をクリックして、カスタムの ProfessionalColorTable クラスで定義したグラデーションを適用します。

Visual Basic
Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms
Imports System.Drawing


...


' This code example demonstrates how to use a ProfessionalRenderer
' to define custom professional colors at runtime.
Class Form2
   Inherits Form

   Public Sub New()
      ' Create a new ToolStrip control.
      Dim ts As New ToolStrip()

      ' Populate the ToolStrip control.
      ts.Items.Add("Apples")
      ts.Items.Add("Oranges")
      ts.Items.Add("Pears")
      ts.Items.Add("Change Colors", Nothing, New EventHandler(AddressOf ChangeColors_Click))

      ' Create a new MenuStrip.
      Dim ms As New MenuStrip()

      ' Dock the MenuStrip control to the top of the form.
      ms.Dock = DockStyle.Top

      ' Add the top-level menu items.
      ms.Items.Add("File")
      ms.Items.Add("Edit")
      ms.Items.Add("View")
      ms.Items.Add("Window")

      ' Add the ToolStrip to Controls collection.
      Me.Controls.Add(ts)

      ' Add the MenuStrip control last.
      ' This is important for correct placement in the z-order.
      Me.Controls.Add(ms)
    End Sub

   ' This event handler is invoked when the "Change colors"
   ' ToolStripItem is clicked. It assigns the Renderer
   ' property for the ToolStrip control.
    Sub ChangeColors_Click(ByVal sender As Object, ByVal e As EventArgs)
        ToolStripManager.Renderer = New ToolStripProfessionalRenderer(New CustomProfessionalColors())
    End Sub
End Class

' This class defines the gradient colors for 
' the MenuStrip and the ToolStrip.
Class CustomProfessionalColors
   Inherits ProfessionalColorTable

   Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
      Get
         Return Color.BlueViolet
      End Get 
   End Property

   Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
      Get
         Return Color.CadetBlue
      End Get 
   End Property

   Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
      Get
         Return Color.CornflowerBlue
      End Get 
   End Property

   Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
      Get
         Return Color.Salmon
      End Get 
   End Property

   Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
      Get
         Return Color.OrangeRed
      End Get
    End Property

End Class

C#
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;


...


// This code example demonstrates how to use a ProfessionalRenderer
// to define custom professional colors at runtime.
class Form2 : Form
{
    public Form2()
    {
        // Create a new ToolStrip control.
        ToolStrip ts = new ToolStrip();

        // Populate the ToolStrip control.
        ts.Items.Add("Apples");
        ts.Items.Add("Oranges");
        ts.Items.Add("Pears");
        ts.Items.Add(
            "Change Colors", 
            null, 
            new EventHandler(ChangeColors_Click));

        // Create a new MenuStrip.
        MenuStrip ms = new MenuStrip();

        // Dock the MenuStrip control to the top of the form.
        ms.Dock = DockStyle.Top;

        // Add the top-level menu items.
        ms.Items.Add("File");
        ms.Items.Add("Edit");
        ms.Items.Add("View");
        ms.Items.Add("Window");

        // Add the ToolStrip to Controls collection.
        this.Controls.Add(ts);

        // Add the MenuStrip control last.
        // This is important for correct placement in the z-order.
        this.Controls.Add(ms);
    }

    // This event handler is invoked when the "Change colors"
    // ToolStripItem is clicked. It assigns the Renderer
    // property for the ToolStrip control.
    void ChangeColors_Click(object sender, EventArgs e)
    {
        ToolStripManager.Renderer = 
            new ToolStripProfessionalRenderer(new CustomProfessionalColors());
    }
}

// This class defines the gradient colors for 
// the MenuStrip and the ToolStrip.
class CustomProfessionalColors : ProfessionalColorTable
{
    public override Color ToolStripGradientBegin
    { get { return Color.BlueViolet; } }

    public override Color ToolStripGradientMiddle
    { get { return Color.CadetBlue; } }

    public override Color ToolStripGradientEnd
    { get { return Color.CornflowerBlue; } }

    public override Color MenuStripGradientBegin
    { get { return Color.Salmon; } }

    public override Color MenuStripGradientEnd
    { get { return Color.OrangeRed; } }
}

カスタムの ProfessionalColorTable クラスの定義

カスタム グラデーションは CustomProfessionalColors クラス内で定義します。

Visual Basic
' This class defines the gradient colors for 
' the MenuStrip and the ToolStrip.
Class CustomProfessionalColors
   Inherits ProfessionalColorTable

   Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
      Get
         Return Color.BlueViolet
      End Get 
   End Property

   Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
      Get
         Return Color.CadetBlue
      End Get 
   End Property

   Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
      Get
         Return Color.CornflowerBlue
      End Get 
   End Property

   Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
      Get
         Return Color.Salmon
      End Get 
   End Property

   Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
      Get
         Return Color.OrangeRed
      End Get
    End Property

End Class

C#
// This class defines the gradient colors for 
// the MenuStrip and the ToolStrip.
class CustomProfessionalColors : ProfessionalColorTable
{
    public override Color ToolStripGradientBegin
    { get { return Color.BlueViolet; } }

    public override Color ToolStripGradientMiddle
    { get { return Color.CadetBlue; } }

    public override Color ToolStripGradientEnd
    { get { return Color.CornflowerBlue; } }

    public override Color MenuStripGradientBegin
    { get { return Color.Salmon; } }

    public override Color MenuStripGradientEnd
    { get { return Color.OrangeRed; } }
}

カスタム レンダラの割り当て

CustomProfessionalColors クラスを使用して新しい ToolStripProfessionalRenderer を作成し、それを ToolStripManager..::.Renderer プロパティに割り当てます。

Visual Basic
' This event handler is invoked when the "Change colors"
' ToolStripItem is clicked. It assigns the Renderer
' property for the ToolStrip control.
 Sub ChangeColors_Click(ByVal sender As Object, ByVal e As EventArgs)
     ToolStripManager.Renderer = New ToolStripProfessionalRenderer(New CustomProfessionalColors())
 End Sub

C#
// This event handler is invoked when the "Change colors"
// ToolStripItem is clicked. It assigns the Renderer
// property for the ToolStrip control.
void ChangeColors_Click(object sender, EventArgs e)
{
    ToolStripManager.Renderer = 
        new ToolStripProfessionalRenderer(new CustomProfessionalColors());
}

この例で必要な要素は次のとおりです。

  • System.Design、System.Drawing、System.Windows.Forms の各アセンブリへの参照。

Visual Basic または Visual C# のコマンド ラインからこの例をビルドする方法の詳細については、「コマンド ラインからのビルド (Visual Basic)」または「csc.exe を使用したコマンド ラインからのビルド」を参照してください。Visual Studio で新しいプロジェクトにコードを貼り付けてこの例をビルドすることもできます。 詳細については方法 : 完成した Windows フォーム コードの例を Visual Studio を使ってコンパイルして実行する.

コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker