代码之家  ›  专栏  ›  技术社区  ›  Tim Rupe

对Windows窗体使用右键单击按钮

  •  2
  • Tim Rupe  · 技术社区  · 17 年前

    我正在编写一个应用程序,用户可以在其中更改按钮的操作。

    用户应该右键单击一个按钮,然后从弹出的上下文菜单中选择一个选项。一旦做出选择,当用户使用普通单击时,按钮将执行不同的操作。

    我已经让“click”事件在正常的按钮单击下工作,但是“mouseclick”事件处理程序工作不正常。

    “mouseclick”事件会在常规的左键单击时被激活,但不会被调用右键单击。

    是否有一些正在执行的默认事件处理忽略了右键单击?

    5 回复  |  直到 12 年前
        1
  •  3
  •   Fredrik Mörk    17 年前

    如果要显示一个上下文菜单,其中包含要从中选择的操作,则它应该足以分配一个 ContextMenuStrip ContextMenuStrip 财产。通常不需要为此手动处理鼠标事件。

        2
  •  4
  •   Yvo    17 年前

    很抱歉,这将是一个严重的用户界面错误。也许在按钮旁边添加一个小的组合框会更有意义。

    也许是这样?
    http://www.codeproject.com/KB/buttons/SplitButton.aspx

        3
  •  3
  •   Gonz    14 年前

    当然,最好在mousedown事件上实现它,而不是mouseup事件。我不明白这和mouselick事件有什么不同

    编辑:刚试过这个,效果很好:)

        4
  •  2
  •   Ben M    17 年前

    在button(和某些其他控件)中,mouseclick事件仅针对左侧按钮触发。参照 MSDN .

    如果您想知道正确的按钮,那么就响应mouseup事件——尽管正如其他海报所指出的那样,这不是一个很好的UI习惯用法。

        5
  •  0
  •   Terry    12 年前

    使用鼠标向上移动事件…测试button.x和button.y是否在按钮的大小范围内,否则将鼠标移离按钮。 特里G