一、自定义MenuStrip render
项目时,觉得自带菜单项选中颜色与项目不匹配,想要更改,多方查询总结出方法。
初始化时 将this.menustrip1.render=new myselfrender();设置为自己重写的render类。
public class CustomProfessionalRenderer:ToolStripProfessionalRenderer
{
Font textFont = new System.Drawing.Font("微软雅黑", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
private Color menuItemSelectedColor = Color.Gray;
private Color menuItemBorderColor = Color.Black;
/// <summary>
/// Initialize a new instance of the Visual Studio MenuBarRenderer class.
/// </summary>
public CustomProfessionalRenderer()
: base(new MenuBarColor())
{
this.menuItemSelectedColor = Color.LightSteelBlue;
this.menuItemBorderColor = Color.LightSteelBlue;
}
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
e.TextFont = textFont;
base.OnRenderItemText(e);
}
#region Backgrounds
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
{
if (e.Item.IsOnDropDown)
{
if (e.Item.Selected == true && e.Item.Enabled)
{