3ds Max 2016的版本怎么处理 按键输入被主程序截断 C#winform窗体接受不到英文输入

3ds Max 2016的版本怎么处理 按键输入被主程序截断 C#winform窗体接受不到英文输入

如果窗体失去焦点应该取消 全局监听事件

解决方案:在窗体失去焦点时取消全局键盘钩子

为了确保 WinForms 窗体失去焦点时不再拦截键盘事件(避免影响 3ds Max 或其他程序),我们需要在 Deactivate 事件中 临时卸载钩子,并在窗体重新激活时恢复。

using System;
using System.Windows.Forms;

public class KeyCaptureForm : Form
{
    private GlobalKeyboardHook _keyboardHook;
    private TextBox _textBox;

    public KeyCaptureForm()
    {
        this.Text = "全局键盘监听";
        _textBox = new TextBox { Width = 300, Multiline = true, Height = 200 };
        this.Controls.Add(_textBox);

        // 初始化全局键盘钩子
        _keyboardHook = new GlobalKeyboardHook();
        _keyboardHook.OnKeyDown += (keyCode) =>
        {
            _textBox.AppendText($"按下: {(Keys)keyCode}\n");
        };
        _keyboardHook.OnKeyUp += (keyCode) =>
        {
            _textBox.AppendText($"释放: {(Keys)keyCode}\n");
        };

        this.FormClosed += (s, e) => _keyboardHook.Dispose();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星尘库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值