OnRenderDropDownButtonBackground

OnRenderDropDownButtonBackground

打开ToolStripDropDownButton的下拉菜单时,我需要更改其背景色。我该怎么做?

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

最佳答案

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

第一种方法:

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

10-04 12:02