【发布时间】:2020-12-16 17:23:02
【问题描述】:
我试图使用覆盖来更改 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);
}
}
结果如下:
我知道OnRenderArrow 存在,我也尝试过覆盖它,但它看起来像是被OnRenderSplitButtonBackground 中的dropdown 矩形“覆盖”了。
我应该如何解决这个问题?提前致谢!
【问题讨论】:
标签: c# background toolstrip toolstripbutton