如何覆盖工具条渲染器?

时间:2018-01-20 16:40:30

标签: winforms visual-studio c++-cli toolstrip

我是visual studio和c ++的新手,我创建了一个新的CLR Empty Project并开始添加一些控件。我在工具条的右边缘注意到这个奇怪的人工制品,并希望将其删除。

这个问题Why am I getting a vertical line on toolstrip?在c#中提供了一个解决方案,但是我在尝试使它在visual c ++中工作时遇到了麻烦。

首先我创建了一个名为CustomerRenderer.cpp的新.cpp文件,代码如下:

using namespace System::Windows::Forms;

private ref class CustomRenderer : ToolStripRenderer
{
protected:
    virtual void OnRenderToolStripBorder(ToolStripRenderEventArgs^ e) override
    {
        ToolStripRenderer::OnRenderToolStripBorder(e);
    }
};

然后在我的表单加载中我把它:

private: System::Void MainForm_Load(System::Object^  sender, System::EventArgs^  e) {
        this->toolStrip1->Renderer = gcnew CustomRenderer();
    }

这只会使工具条完全消失,而不是修复边缘人工制品。我喜欢渐变工具条的样式,所以不要改为系统渲染器。

如何在visual c ++项目中覆盖工具条渲染器并删除边缘边框伪影?

由于

1 个答案:

答案 0 :(得分:0)

好的,我通过改变解决了:

private ref class CustomRenderer : ToolStripRenderer

private ref class CustomRenderer : ToolStripProfessionalRenderer