1

オーバーライドを使用して背景を変更しようとしToolStripSplitButtonていましたが、ボタンにカーソルを合わせるとドロップダウンの矢印が消えます。

コード:

protected override void OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs e)
{
    if (!e.Item.Selected)
    {
        base.OnRenderSplitButtonBackground(e);
    }
    else
    {
        Rectangle button = new Rectangle(0, 0, e.Item.Size.Width - 12, e.Item.Size.Height - 1);
        e.Graphics.FillRectangle(Brushes.White, button);
        e.Graphics.DrawRectangle(Pens.Olive, button);

        Rectangle dropdown = new Rectangle(e.ToolStrip.Items[0].Size.Width - 1, 0, e.Item.Size.Width - 32, e.Item.Size.Height - 1);
        e.Graphics.FillRectangle(Brushes.White, dropdown);
        e.Graphics.DrawRectangle(Pens.Olive, dropdown);
    }
}

結果は次のようになります。

ToolStripSplitButton

私はそれOnRenderArrowが存在することを知っており、それをオーバーライドしようとしましたが、 のdropdownRectangleによって「上書き」されているようOnRenderSplitButtonBackgroundです。

これを修正するにはどうすればよいですか? 前もって感謝します!

4

1 に答える 1