c# - 仅在按下左键时捕获鼠标移动事件

标签 c# .net winforms events

我仅在鼠标左键按下时将鼠标移到控件上时才需要更新控件。我通常只检查e.Button属性,但是在MouseEnter事件中不可用。

void MyControl_MouseEnter(object sender, EventArgs e)
    {
        // MouseEventArgs needed to check this

        // if (e.Button == MouseButtons.Left)
        // {
        //     update MyControl
        // }
    }


您将如何实现?

最佳答案

使用静态Control.MouseButtons属性。例如:

    private void panel1_MouseEnter(object sender, EventArgs e) {
        if (Control.MouseButtons == MouseButtons.Left) {
            // etc...
        }
    }


这很难实现,无论用户单击什么来按下鼠标按钮都将捕获鼠标,从而阻止了控件的MouseEnter事件触发。也是用户完全无法发现的UI。请考虑使用更好的鼠标陷阱。

关于c# - 仅在按下左键时捕获鼠标移动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7935386/

相关文章:

c# - 获取2个圆的交点

c# - 如何修复 Blazor WASM .NET 7 升级中的身份验证错误?

c# - 有没有办法单独设置 Winforms ListView 单元格的 BackColor?

c# - 如何搜索类类型的列表属性

c# - 抓取位图图像(Winforms)并转换为 WPF 图像失败

c# - 如何最小化 OleDbDataAdapter 从远程数据库获取数据的时间

C# 正则表达式删除与号

.net - .NET Standard/Core 中的 .vspscc 文件

.net - 用于 Web 服务数据源的 ORM?

c# - 表单打开时将光标更改为交叉(代码段工具)