【问题标题】:Print to Console on left click C# [duplicate]左键单击C#打印到控制台[重复]
【发布时间】:2016-07-07 05:43:47
【问题描述】:

下面的代码每 500 毫秒显示一次鼠标在控制台中的位置。我试图弄清楚如何只在发生左键单击时显示鼠标位置。 下面是它现在所做的示例。

public static void MacroMouseThread()
{
    Console.WriteLine("MouseLocation Started");

    while (true)
    {
        // Shows mouse location cords 
        Console.WriteLine(Cursor.Position.ToString()); 
        Thread.Sleep(500);
    }

}

我想左键单击屏幕上的任意位置,它会打印到控制台,而不是它不断地连续打印。

【问题讨论】:

    标签: c# onclick


    【解决方案1】:

    你需要使用事件驱动编程。

    this.MouseClick += mouseClick;
    
    private void mouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            Trace.WriteLine("Mouse clicked");
            Console.WriteLine(Cursor.Position.ToString());
        }
    }
    

    我没有看到你的整个代码,但你明白了。

    如需进一步阅读,请搜索 C# 和 Delegates 中的事件驱动编程。

    一个不错的教程:http://www.codeproject.com/Articles/1008553/Event-Driven-Programing-in-NET

    【讨论】:

    • 你认为这将如何在控制台应用程序中工作?
    • 我不是说运行这段代码,我是想说必须使用事件驱动编程。我也没有看到他的完整申请。
    • 您的答案在控制台应用程序中完全是无稽之谈,但纯事件驱动编程无法做到这一点。
    • @DavidG 我不会争论。
    • 谢谢我发现了我从 MSDN 中得到的东西,但我无法弄清楚这种特殊情况。感谢您的帮助。我会尝试弄清楚如何实现它。
    猜你喜欢
    • 2015-08-23
    • 2019-09-20
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2018-04-15
    • 2020-11-14
    相关资源
    最近更新 更多