次の方法で共有


方法: ToolStrip コントロールをカスタム描画する

ToolStrip コントロールには、次のレンダリング (描画) クラスが関連付けられています。

ToolStripをカスタム描画 (所有者描画とも呼びます) するには、レンダラー クラスの 1 つをオーバーライドし、レンダリング ロジックの側面を変更できます。

次の手順では、カスタム描画のさまざまな側面について説明します。

指定されたレンダラーを切り替える

Office スタイルの罫線を変更する

このメソッドには、ToolStripRendererToolStripSystemRenderer、および ToolStripProfessionalRendererのバージョンがあります。

ProfessionalColorTable を変更する

  • ProfessionalColorTable をオーバーライドし、必要な色を変更します。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
            var colorTable = new MyColorTable();
            toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable);
        }
    
        class MyColorTable: ProfessionalColorTable
        {
            public override System.Drawing.Color ButtonPressedGradientBegin => Color.Red;
            public override System.Drawing.Color ButtonPressedGradientMiddle => Color.Blue;
            public override System.Drawing.Color ButtonPressedGradientEnd => Color.Green;
            public override System.Drawing.Color ButtonSelectedGradientBegin => Color.Yellow;
            public override System.Drawing.Color ButtonSelectedGradientMiddle => Color.Orange;
            public override System.Drawing.Color ButtonSelectedGradientEnd => Color.Violet;
        }
    }
    
    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim colorTable As New MyColorTable
            ToolStrip1.Renderer = New ToolStripProfessionalRenderer(colorTable)
        End Sub
    
        Class MyColorTable
            Inherits ProfessionalColorTable
    
            Public Overrides ReadOnly Property ButtonPressedGradientBegin() As System.Drawing.Color
                Get
                    Return Color.Red
                End Get
            End Property
    
            Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As System.Drawing.Color
                Get
                    Return Color.Blue
                End Get
            End Property
    
            Public Overrides ReadOnly Property ButtonPressedGradientEnd() As System.Drawing.Color
                Get
                    Return Color.Green
                End Get
            End Property
    
            Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As System.Drawing.Color
                Get
                    Return Color.Yellow
                End Get
            End Property
    
            Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As System.Drawing.Color
                Get
                    Return Color.Orange
                End Get
            End Property
    
            Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As System.Drawing.Color
                Get
                    Return Color.Violet
                End Get
            End Property
        End Class
    End Class
    

すべての ToolStrips のレンダリングを変更する

  1. ToolStripManager.RenderMode プロパティを使用して、指定されたレンダラーのいずれかを選択します。

  2. ToolStripManager.Renderer を使用してカスタム レンダラーを割り当てます。

  3. ToolStrip.RenderMode が既定値の ManagerRenderModeに設定されていることを確認します。

Office の色をオフにする

1 つの ToolStrip で Office の色をオフにする

  • 次のコード例のようなコードを使用します。

    ProfessionalColorTable colorTable = new ProfessionalColorTable();
    colorTable.UseSystemColors = true;
    toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable);
    
    Dim colorTable As New ProfessionalColorTable
    colorTable.UseSystemColors = True
    ToolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable)
    

こちらも参照ください