C#,BindingNavigator,SplitButton,Ugly dot剩余

时间:2018-01-16 16:46:49

标签: c# winforms toolstrip split-button bindingnavigator

在空表单上绘制工具条。在此工具条上添加SplitButton。稍后将用作登录按钮。

在这个SplitButton上我想删除开始位置的下拉列表。你唯一能做的就是登录。登录后,下拉列表中会填充"更改密码","更新个人资料"等项目。等等。

我试过把属性:

        loginButton.DropDownButtonWidth = 0;

这几乎消除了下拉,它消失了,但它在右边是一个非常难看的点,这似乎是从下拉角落留下的一个像素。见下图:

SplitButton With DropDown

SplitButton Without DropDown

我已经尝试了很多其他属性来删除下拉列表,但没有进展。当我谷歌时,我找不到类似的东西。

我得到了很好的帮助,几天前修复了工具条的另一个问题,工具条在默认状态下也有一个绘图问题。但是如果你覆盖了一个方法就被删除了,请看这篇文章:

Toolstrip drawing problem

有谁知道我如何删除丑陋的点,或者以其他方式删除下拉?

完整源代码,一行基本上使用名为loginButton的SplitButton:

using System;

使用System.Windows.Forms;

命名空间WindowsFormsApp1 {     公共部分类Form1:表格     {         公共Form1()         {             的InitializeComponent();         }

    private void Form1_Load(object sender, EventArgs e)
    {
        loginButton.DropDownButtonWidth = 0;
    }
}

}

1 个答案:

答案 0 :(得分:1)

您可以使用自己的渲染器来尝试实现:

private class NoArrowRenderer : ToolStripProfessionalRenderer {
  protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e) {
    if (e.Item.GetType() != typeof(ToolStripSplitButton)) {
      base.OnRenderArrow(e);
    }
  }
}

然后将其应用于ToolStrip:

toolStrip1.Renderer = new NoArrowRenderer();