我需要使用Visual C ++自定义MenuStrip。我尝试过创建一个ColorTable,但它一直在告诉我,我不能覆盖类的非虚方法,在其他尝试中它告诉我我不能覆盖属性。
当我在办公室使用Windows系统时,我目前无法发布我的一些尝试,因为我拥有一台Mac。
答案 0 :(得分:0)
我终于弄明白了。
拳头,创建自定义ColorTable。例如:
public ref class MyCustomColorTable: public ProfessionalColorTable
{
public:
property Color MenuBorder {
public: virtual Color get() override {
return Color::FromArgb(180, 180, 185);
};
};
property Color MenuItemBorder {
public: virtual Color get() override {
return Color::FromArgb(0, 0, 0, 0);
};
};
property Color ImageMarginGradientBegin {
public: virtual Color get() override {
return Color::FromArgb(0, 0, 0, 0);
};
};
property Color ImageMarginGradientMiddle {
public: virtual Color get() override {
return Color::FromArgb(0, 0, 0, 0);
};
};
property Color ImageMarginGradientEnd {
public: virtual Color get() override {
return Color::FromArgb(0, 0, 0, 0);
};
};
property Color ToolStripDropDownBackground {
public: virtual Color get() override {
return Color::FromArgb(248, 248, 248);
};
};
};
其次,然后在您的表单onLoad事件中,执行以下操作:
this->menuStrip->Renderer = gcnew ToolStripProfessionalRenderer(gcnew MyCustomColorTable());