c# - 只要我按下按钮,我怎样才能制作一个winform按钮 "do something"?

标签 c# visual-studio button

我试了一整天,并查找了各种想法......没有真正的帮助。 当我按下一个按钮时,比如“JOG”,它会连续移动 CNC 机床轴,只要按下按钮,然后松开,它就会停止。

为了测试这一点,我使用了一个“图片/LED”,当我按住它时,它应该亮起……当我松开时,它应该关闭。

Pressed Button should = only while pressed, do something。 释放同一个按钮 = 停止做您现在正在做的任何事情。

我敢肯定,对于你们这些高级人士来说,这可能是 101...但对我来说...它正在吃我的午餐...有帮助吗?

最佳答案

您可以使用 MouseDownMouseUp事件。当点击 MouseDown 事件时,调用一个循环执行您的操作的方法。点击 MouseUp 后,停止循环。

private bool _run = false;

public void button_MouseDown(object sender, EventArgs e)
{
    _run = true;
    MyAction();
}

public void button_MouseUp(object sender, EventArgs e)
{
    _run = false;
}

public void MyAction()
{
    while(_run)
    {
        //You actions
    }
}

请注意,上面的示例会占用 UI 线程。您应该使用 BackgroundWorker 或类似的东西在另一个线程上运行它。

关于c# - 只要我按下按钮,我怎样才能制作一个winform按钮 "do something"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147052/

相关文章:

c# - Unity3d显示状态栏

c# - 如何在休息时检索请求域 URL?

c# - JSON Newtonsoft C# - 反序列化 JSON 文件中的特定字段

c# - 如何在 C# 中使用参数化构造函数创建泛型类型参数的实例

c++ - 强制 Visual Studio 仅使用标准 C++,而不使用平台特定的东西

c# - 如何使 Microsoft.VisualStudio.Diagnostics.UI.Controls.MultiSelectComboBox 工作

css - Bootstrap 4 中心元素仅在小视口(viewport)上,但在其他所有尺寸上都没有对齐?

java - 如何使用变量定义按钮的命令

c# - 使用 Microsoft.office.interop 时打印错误

javascript - 如何向此 JavaScript/HTML 代码添加按钮,以便我的代码仅在按下按钮后运行?