C# ToolStrip is transparent but border is still vi

2019-02-24 08:18发布

I have a ToolStrip in a C# application that I set the background color to Transparent. This reveals the underlying form's color but unfortunately the ToolStrip border is still visible.

I've implemented a Custom Renderer and overridden the DrawBoarder method to not draw anything but that seems to apply to all of the contained buttons as well (i.e the menu on drop down buttons are also drawn without a border).

So I'm stuck. What's the best way to draw transparent the entire ToolStrip but leave the buttons alone?

3条回答
我命由我不由天
2楼-- · 2019-02-24 09:02
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
    if( e.ToolStrip.GetType().Name != "MyCustomToolStrip" )
    {
        base.OnRenderToolStripBorder(e);
    }
}
查看更多
霸刀☆藐视天下
3楼-- · 2019-02-24 09:07

I have tried just overriding the OnRenderToolStripBorder method and it seems it doesn't affect the buttons at all. Have you tried it like this?

public class TestStripRenderer : ToolStripProfessionalRenderer
{   
    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    {
    }
}
查看更多
Fickle 薄情
4楼-- · 2019-02-24 09:10

Since you are trying to make the toolstrip hidden but keep the buttons, I have to put this out there.

Do you even need the toolstrip?

It might be better if you just used buttons in the application without the seemingly unneeded toolstrip.

查看更多
登录 后发表回答