【问题标题】:How click in a button above another button? [closed]如何单击另一个按钮上方的按钮? [关闭]
【发布时间】:2018-01-02 11:33:18
【问题描述】:

我在大按钮上方有一个大按钮和一个小按钮。我想要的是:当用户点击小按钮时,激活他的点击事件而不是大按钮的点击事件。谢谢!

编辑:我有一个带有 2 个 System.Windows.Forms.Button 的表单。视觉工作室 2017。

要说明的图像:

EDIT²:smllButton 开始隐形! bigButton 的 MouseEnter 事件:smallButton.Visible = true bigButton 的 MouseLeave 事件:smllButton.visible = false

【问题讨论】:

  • 我认为我们需要的信息比您提供的更多。
  • 您是否尝试过在设计器中置顶,或在代码中尝试过BringToFront()?见stackoverflow.com/questions/1351054/…
  • 我尝试的第一件事
  • 我刚刚创建了一个 WinForms 项目,添加了一个带有单击处理程序的大按钮,在其顶部添加了一个带有不同单击处理程序的小按钮,它的行为完全符合您的要求。所以还有更多你没有说的东西。

标签: c# winforms


【解决方案1】:

一种方法是使用大按钮上的MouseDown 事件向小按钮发送点击:

private void bigButton_MouseDown(object sender, MouseEventArgs e) {
    if (littleButton.Bounds.Contains(littleButton.Parent.PointToClient(Cursor.Position))) {
        littleButton_Click(littleButton, EventArgs.Empty);
        return;
    }

    // Any code needed for MouseDown actually on big button goes here:
}

请注意,这可以将鼠标从小按钮拖动到大按钮并单击两者。您可以将大按钮的点击代码移至此方法。

另一种方法是只使用一个按钮,在MouseEnter 上更改其外观,然后使用鼠标 X/Y 来确定单击了按钮的哪个部分。

【讨论】:

    猜你喜欢
    • 2022-12-18
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多