0

在空窗体上绘制工具条。在此工具条上添加一个拆分按钮。稍后将用作登录按钮。

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

我试过把财产:

        loginButton.DropDownButtonWidth = 0;

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

带有下拉菜单的拆分按钮

不带下拉菜单的拆分按钮

我尝试了很多其他属性来删除下拉菜单,但没有进展。当我用谷歌搜索时,我找不到任何类似的东西。

几天前,我得到了很好的帮助,解决了工具条的另一个问题,工具条在默认状态下也有绘图问题。但如果您确实覆盖了一个方法,则会被删除,请参阅这篇文章:

工具条绘图问题

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

完整的源代码,一行本质上是名为 loginButton 的 SplitButton:

using System;

使用 System.Windows.Forms;

命名空间 WindowsFormsApp1 { public 部分类 Form1 : Form { public Form1() { InitializeComponent(); }

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

}

4

1 回答 1

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();
于 2018-01-16T17:20:56.853 回答