You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否修改Visual Studio工具箱项默认行为,无需编写ToolStrip额外代码?

问题

已知可以通过定义自定义类(如下代码所示)实现ToolStrip控件的扁平化效果,具体是修改其Rendering属性,但需要在Visual Studio项目中为每个包含ToolStrip的窗体逐一操作。想咨询:能不能修改Visual Studio中工具箱里ToolStrip项的默认行为,这样就不用写额外代码了?

public class MySR : ToolStripSystemRenderer
{
    public MySR() { }

    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    {
        //base.OnRenderToolStripBorder(e);
    }
}
可行方案

有两种方式可以实现不用逐个窗体设置的需求:

1. 全局设置默认渲染器

在项目入口(比如Program.cs的Main方法)中,启动主窗体之前添加全局渲染器配置:

ToolStripManager.Renderer = new MySR();

设置完成后,项目中所有ToolStrip控件都会自动使用你自定义的渲染器,无需单独给每个窗体的ToolStrip配置Rendering属性。如果后续有个别ToolStrip需要使用其他渲染器,直接给该控件单独设置Renderer属性即可,会覆盖全局配置。

2. 自定义ToolStrip控件替换工具箱项

如果希望从工具箱拖出的ToolStrip默认就带扁平化效果,可以封装自定义ToolStrip控件:

  • 新建类继承自ToolStrip,在构造函数中指定自定义渲染器:
public class FlatToolStrip : ToolStrip
{
    public FlatToolStrip()
    {
        this.Renderer = new MySR();
    }
}
  • 编译项目后,该自定义控件会自动出现在Visual Studio工具箱中(若未出现,可右键工具箱选择「选择项」,手动添加编译生成的dll)。之后直接拖拽这个自定义的FlatToolStrip到窗体上,就自带扁平化效果,无需额外编写代码。

内容的提问来源于stack exchange,提问作者SoftWar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:04:55