winforms - ToolStripSplitButton 行为覆盖

标签 winforms toolstripdropdown

我试图了解如果使用此构造函数,我必须做什么才能覆盖 System.Windows.Forms 上的 ToolStripDropDown 控件的行为:

 var button = new ToolStripSplitButton("text","path to image", clickEventHandler)

那么只有当我按住鼠标并且使用其他选项时,下拉菜单才会显示

var button = new ToolStripSplitButton("text","path to image")

然后当我点击时就会显示下拉菜单。

我很清楚,提供点击事件处理程序非常明确地说“嘿,当我点击时,执行这个”,但在 ToolStripSplitButton 的情况下,区别有点模糊,因为控件本身的 split 性质。

所以,我喜欢做的是 a) 当用户单击 ToolStripSplitButton 的按钮部分时,单击事件处理程序正常执行 b)当我单击或在 ToolStripSplitButton 的箭头部分上按下鼠标时,下拉列表将显示

是否有任何 OOB 属性/方法可以做到这一点?

谢谢

最佳答案

ToolStripSplitButton有两个点击处理程序。一种称为“Click”,另一种称为“ButtonClick”。构造函数中的一个是“Click”处理程序,无论您单击控件上的哪个位置,它都会触发。 “ButtonClick”处理程序仅在您单击按钮本身(而不是箭头)时触发。

试试这个:

var button = new ToolStripSplitButton("text","path to image");
button.ButtonClick += clickEventHandler;

关于winforms - ToolStripSplitButton 行为覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885909/

相关文章:

c# - 在 C# "DialPad.Designer.CS"页面中注册 KeyPress 事件方法

c# - 如何查找带有名称的 toolstripmenuItem

c# - 分发 clickonce 应用程序的文件

c# - 如何移除树节点并将其节点节点向上移动?

c# - WinForm进入全屏模式

c# - 不要在选中的子项上关闭 ToolStripDropDownButton

c# - 防止 ToolStripMenuItems 跳转到第二个屏幕

winforms - 仅检查一个ToolStripMenuItem

c# - 禁用工具条下拉按钮的选择和下拉符号

winforms - 编码和加密有什么区别?