c#窗体捕捉方向键

方法1

实现方法参考代码:

cs 复制代码
        private void Form1_Load(object sender, EventArgs e)
        {

            this.KeyPreview = true;

        }
        protected override bool ProcessDialogKey(Keys keyData)
        {
            if (keyData == Keys.Left || keyData == Keys.Right || keyData == Keys.Up || keyData == Keys.Down)
            {
                switch (keyData)
                {
                    case Keys.Left:
                        KeyLeftPress();
                        break;
                    case Keys.Right:
                        KeyRightPress();
                        break;
                    case Keys.Up:
                        KeyUpPress();
                        break;
                    case Keys.Down:
                        KeyDownPress();
                        break;
                }
            }
            return base.ProcessDialogKey(keyData);
        }
        public void KeyLeftPress()
        {

        }
        public void KeyRightPress()
        {

        }
        private void KeyUpPress()
        {
           
        }
        private void KeyDownPress()
        {
            
        }

        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            this.Text = e.KeyChar.ToString();
            
        }
        

参考链接

为什么不能触发Form1_keydown事件?-CSDN社区https://bbs.csdn.net/topics/391894242

C# KeyDown事件-CSDN博客https://blog.csdn.net/fangyu723/article/details/108827544

方法2

参考代码

cs 复制代码
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Left)
        this.Left -= 100;
    if (e.KeyCode == Keys.Right)
        this.Left += 100;
    if (e.KeyCode == Keys.Up)
        this.Left -= 10;
    if (e.KeyCode == Keys.Down)
        this.Left += 10;

}

参考链接

Form窗体中判断按键信息_form1_keyup-CSDN博客https://blog.csdn.net/wuhongyao3/article/details/3959667

特此记录

anlog

2024年1月29日

相关推荐
朝朝辞暮i2 分钟前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法
SHARK_pssm1 小时前
【C++——类和对象(下)】
开发语言·c++·经验分享·笔记
凯哥Java1 小时前
写代码怎么避免逻辑漏洞?
java·开发语言·人工智能·自动化
Ai-_Man1 小时前
您您这可以把Dola的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。用AI导出鸭,答案是可以的
开发语言·前端·人工智能·小程序
Java后端的Ai之路1 小时前
Python进阶探索23 - Python中的Time与Datetime模块
开发语言·数据库·python·datetime·time
沫璃染墨2 小时前
《从零入门Linux系统篇(五十四):线程篇·七——互斥锁底层原理:从原子交换到线程竞争与锁实现》
linux·运维·服务器·开发语言·c++·驱动开发·系统架构
Java后端的Ai之路2 小时前
Python进阶探索24_应用案例_linux系统的监控
linux·开发语言·python·应用·探索
程序员清风2 小时前
PydanticAI 实战:用类型安全构建可靠的 Python Agent
开发语言·python·安全
落魄实习生2 小时前
Agent Scope Java 2.x 系列【10】Middleware
java·开发语言·ai
Ramble_Naylor3 小时前
async/await:让一个线程同时等很多件事
开发语言·rust