我需要在打开下拉列表时更改ToolStripDropDownButton
的背景颜色。我该怎么办?
我尝试从ToolStripProfessionalRenderer
继承一个类,然后覆盖OnRenderDropDownButtonBackground
,但它只影响关闭下拉列表的时间。
答案 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;
}