如何更改打开的ToolStripDropDownButton的背景颜色?

时间:2012-05-30 09:04:32

标签: c# winforms toolstripdropdown

我需要在打开下拉列表时更改ToolStripDropDownButton的背景颜色。我该怎么办?

我尝试从ToolStripProfessionalRenderer继承一个类,然后覆盖OnRenderDropDownButtonBackground,但它只影响关闭下拉列表的时间。

2 个答案:

答案 0 :(得分:5)

我相信你可以使用以下方法:

第一种方法:

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);
    }
}

第二种方法:

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);
    }
}

答案 1 :(得分:0)

OnDropDownOpened事件是您想要的吗?

private void toolStripDropDownButton_DropDownOpened(object sender, EventArgs e)
{
   toolStripDropDownButton.BackColor = Color.Red;
}