3

ToolStripDropDownButtonドロップダウンを開いたときに a の背景色を変更する必要があります。どうすればいいですか?

からクラスを継承してToolStripProfessionalRendererをオーバーライドしようとしましOnRenderDropDownButtonBackgroundたが、ドロップダウンが閉じている場合にのみ影響します。

4

2 に答える 2

5

次のアプローチを使用できると思います。

1 番目のアプローチ:

toolStripDropDownButton1.Paint += toolStripDropDownButton1_Paint;
//...
void toolStripDropDownButton1_Paint(object sender, PaintEventArgs e) {
    if(toolStripDropDownButton1.Pressed) {
        // TODO Paint your pressed button
        e.Graphics.FillRectangle(Brushes.Green, e.ClipRectangle);
    }
}

2番目のアプローチ:

toolStrip.Renderer = new PressedRenderer();
//...    

class PressedRenderer : ToolStripProfessionalRenderer {
    protected override void OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs e) {
        if(e.Item.Pressed)
            e.Graphics.Clear(Color.Green);
        else base.OnRenderDropDownButtonBackground(e);
    }
}
于 2012-05-30T09:15:02.283 に答える
0

そのOnDropDownOpenedイベントはあなたが望むものですか?

private void toolStripDropDownButton_DropDownOpened(object sender, EventArgs e)
{
   toolStripDropDownButton.BackColor = Color.Red;
}
于 2012-05-30T09:15:41.440 に答える