当前位置: 首页 > 知识库问答 >
问题:

您可以在自定义呈现器中更改ToolStripMenuItem的字体吗

章建木
2023-03-14
menuMain.Renderer = new ToolStripProfessionalRenderer(new MenuColors());

我有改变背景的事件,但不知道字体/字体颜色?

internal class MenuColors : ProfessionalColorTable
{
    public override Color MenuItemSelected
    {
        get { return MenuHoverColor; }
    }
}

共有1个答案

史同化
2023-03-14

您可以使用ToolStrip的属性手动更改ForeColor和Font属性,呈现器在呈现时将使用它们。

如果您想要不同的字体和颜色当鼠标进入或当一个项目被选中时,您应该处理适当的事件来改变该项目的字体和颜色,例如下面的代码将项目的字体更改为斜体,当鼠标在项目上时:

private void toolStripMenuItem_MouseEnter(object sender, EventArgs e)
{
    var item=(ToolStripMenuItem)sender;
    item.ForeColor = Color.Blue;
    item.Font = new Font(item.Font, FontStyle.Italic | FontStyle.Bold );
}

private void toolStripMenuItem_MouseLeave(object sender, EventArgs e)
{
    var item = (ToolStripMenuItem)sender;
    item.ForeColor = Color.Green;
    item.Font = new Font(item.Font, FontStyle.Regular);
}

您可以将这些处理程序动态地分配给您的ToolStripMenuItems,如下所示:

YourToolStripMenuItem.MouseEnter += new System.EventHandler(this.toolStripMenuItem_MouseEnter);
YourToolStripMenuItem.MouseLeave += new System.EventHandler(this.toolStripMenuItem_MouseLeave);
 类似资料:
  • 问题内容: 是否有任何SQL子查询语法可让您从字面上定义临时表? 例如,类似 这样可以省去执行两个或三个查询的步骤:创建临时表,将数据放入其中,然后在联接中使用它。 我正在使用MySQL,但会对其他可以做类似事情的数据库感兴趣。 问题答案: 我想您可以将几个s与s 组合在一起进行子查询。

  • 问题内容: 在Eclipse中,有一些模板可以通过自动插入一些代码或注释来帮助您。您可以自己通过首选项> Java>编辑器>模板来编辑这些模板。您可以使用所谓的“模板变量”来使这些模板更智能。 例如,有一个$ {see_to_overridden}变量,它在Javadoc注释中插入了“ @see my.package.name.SpuerclassName#methodName(int,my.ot

  • 是否可以在Visual Studio代码中自定义代码折叠的工作方式? 我使用一种通用模式来定义各种不同文档类型之间的代码区域。 > 所以,对于XML,我用和包装文本部分 对于typescript/JavaScript,我使用和。 在完整的Visual Studio(不是VS代码)中,我有一个自定义扩展,它可以窥探文档类型之间的模式,并基于该模式创建折叠,从而允许我创建整洁的自定义文档大纲。我希望在

  • 我已经声明了一个用于iOS的自定义渲染器(和Android-工作正常)。 自定义呈现器主要设置背景色和文本颜色。 设置文本颜色对启用和禁用状态都很好,但我在不同状态下设置按钮的背景颜色时遇到了麻烦。 我无法找到任何关于Xamarin自定义呈现器的文档,而且Xamarin的一个已知错误是,我无法在Visual Studio中获得任何适用于iOS类的智能感知,到目前为止,我已经使用了我能找到的关于该主

  • 我在Xamarin.Forms应用程序中创建了一个自定义的选择器呈现器,在IOS上它工作得很好,但当我运行Android时它崩溃了。 我已经更新了Visual Studio2017,并且正在运行Xamarin.Forms 2.3.4.247。 目标Android版本设置为7.1(6.0上出现相同错误)最小Android版本设置为4.3

  • 问题内容: 是否可以通过在指令范围内传递值来即时更改templateUrl?我想将数据传递到控制器,该控制器将根据从指令传递的数据来呈现页面 可能看起来像这样: 问题答案: 有可能,但是当要加载的模板取决于某些范围数据时,您将无法再使用指令的属性,并且您将不得不使用较低级别的API,即和。 大约需要做的事情(仅在链接功能中是可能的)是使用(不要忘了参与!)检索模板的内容,然后“手动”编译模板的内容