繁体   English   中英

如何使用KeyUp键在特定光标位置执行鼠标单击?

[英]How can I perform a mouse click at certain cursor position using a KeyUp key?

所以在构造函数中我有这个

KeyUp += WindowKeyUp;

在我拥有的方法中, xy是我从另一种方法得到的点。

private void DoMouseClick(int x, int y)
{
    SetCursorPos(x, y);
    mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, x, y, 0, 0);
}

因此,当我释放空格键时,应该在此处写什么以在特定光标位置执行鼠标单击操作?

private void WindowKeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
    if (e.Key == Key.Space)
    {
       //what to write here?
    }
}

提前致谢!

我以某种方式同意这可能是XY问题。 但是由于我们不知道其背后的实际用例,因此我将向您展示如何获取最后的x和y。

您可以对鼠标移动事件做出反应,以存储x和y,并在收到按键事件时使用该信息。

她是XAML的一部分:

<StackPanel KeyDown="StackPanel_KeyDown" MouseMove="StackPanel_MouseMove">

这里是处理程序:private void DoMouseClick(double x,double y){// ...}

    private double m_x = 0.0;
    private double m_y = 0.0;
    private void StackPanel_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
    {
        var p = e.GetPosition(this);
        m_x = p.X;
        m_y = p.Y;
    }

    private void StackPanel_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
    {
        if (e.Key == System.Windows.Input.Key.Space) {
            DoMouseClick(m_x, m_y);
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM