【问题标题】:Converting ToolBar to ToolStrip control and MouseHover not working将 ToolBar 转换为 ToolStrip 控件和 MouseHover 不起作用
【发布时间】:2014-08-08 12:31:24
【问题描述】:

我有一个大型的 winform 应用程序,我们正在努力修改它的外观。我将 System.Windows.Forms.Toolbar 替换为 System.Windows.Forms.ToolStrip 控件。我使用自定义渲染器来更改下拉箭头颜色。使用默认渲染器,我在工具条中获得鼠标悬停效果,但使用我的自定义渲染,它似乎不起作用。这是我的代码。

工具条初始化:为了阅读舒适,我删除了不必要的代码

this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton();

this.toolStrip1.ImageList = this.imageList1;
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(55, 32);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripDropDownButton1
});
this.toolStrip1.Renderer = new  MyRenderer();

工具条下拉按钮:

 this.toolStripDropDownButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
 this.toolStripDropDownButton1.ImageIndex = 0;
 this.toolStripDropDownButton1.Name = "toolStripDropDownButton1";

自定义渲染器

 public class MyRenderer : ToolStripRenderer
 {
    protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
    {
        e.ArrowColor = Color.White;
        base.OnRenderArrow(e);
    }
 }

【问题讨论】:

    标签: c#-4.0 toolbar toolstrip toolstripdropdown


    【解决方案1】:

    感谢@LarsTech 的帮助。我发现这个工作。我在渲染器和代码中进行了以下修改。

    在初始化时添加了这一行

    this.Toolstip1.RenderMode = ToolStripRenderMode.Professional;
    

    自定义渲染器

    public class MyRenderer : ToolStripProfessionalRenderer //Professional renderer
    {
       protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
       {
        e.ArrowColor = Color.White;
        base.OnRenderArrow(e);
       }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 2020-09-24
      • 2021-08-12
      • 2023-03-27
      • 2020-05-10
      • 2014-11-23
      • 2016-02-26
      相关资源
      最近更新 更多