当前位置: 首页 > news >正文

winform 烦人的键盘事件 再遇上 chart 上下左右 失灵

AI 用多了会失去思考耐心

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;namespace TestForm
{public partial class UserControl2 : UserControl{public UserControl2(){InitializeComponent();// 启用 UserControl 自身的键盘事件this.SetStyle(ControlStyles.StandardClick | ControlStyles.StandardDoubleClick | ControlStyles.UserMouse, true);this.SetStyle(ControlStyles.Selectable, true);this.TabStop = true;Chart ct = new Chart();ct.PreviewKeyDown += OnPreviewKeyDown;this.Controls.Add(ct);// 订阅 UserControl 自身的事件this.KeyDown += ChildControl_KeyDown;this.KeyUp += ChildControl_KeyUp;this.PreviewKeyDown += OnPreviewKeyDown;// 为所有现有控件订阅事件SubscribeToChildControls(this);// 为新添加的控件订阅事件this.ControlAdded += (s, e) => SubscribeToControl(e.Control);}private void OnPreviewKeyDown(object sender, PreviewKeyDownEventArgs e){switch (e.KeyCode){case Keys.Up:case Keys.Down:case Keys.Left:case Keys.Right:case Keys.Space:e.IsInputKey = true;break;}}private void SubscribeToChildControls(Control parent){foreach (Control control in parent.Controls){SubscribeToControl(control);SubscribeToChildControls(control); // 递归订阅子控件
            }}private void SubscribeToControl(Control control){control.KeyDown += ChildControl_KeyDown;control.KeyUp += ChildControl_KeyUp;control.PreviewKeyDown += OnPreviewKeyDown;}private void ChildControl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e){// 将空格键标记为输入键,这样KeyUp事件才会触发if (e.KeyCode == Keys.Space){e.IsInputKey = true;}}private void ChildControl_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Space){Console.WriteLine("空格键按下 - 时间: " + DateTime.Now.ToString("HH:mm:ss.fff"));e.Handled = true; // 阻止默认处理
            }if (e.KeyCode == Keys.Up){Console.WriteLine("上键按下 - 时间: " + DateTime.Now.ToString("HH:mm:ss.fff"));e.Handled = true; // 阻止默认处理
            }if (e.KeyCode == Keys.Down){Console.WriteLine("下键按下 - 时间: " + DateTime.Now.ToString("HH:mm:ss.fff"));e.Handled = true; // 阻止默认处理
            }if (e.KeyCode == Keys.Left){Console.WriteLine("左键按下 - 时间: " + DateTime.Now.ToString("HH:mm:ss.fff"));e.Handled = true; // 阻止默认处理
            }if (e.KeyCode == Keys.Right){Console.WriteLine("右键按下 - 时间: " + DateTime.Now.ToString("HH:mm:ss.fff"));e.Handled = true; // 阻止默认处理
            }if (e.KeyCode == Keys.Enter){Console.WriteLine("回车键按下 - 时间: " + DateTime.Now.ToString("HH:mm:ss.fff"));e.Handled = true; // 阻止默认处理
            }}private void ChildControl_KeyUp(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Space){Console.WriteLine("空格键释放 - 时间: " + DateTime.Now.ToString("HH:mm:ss.fff"));e.Handled = true; // 阻止默认处理
            }}}
}

 

http://www.zskr.cn/news/13532.html

相关文章:

  • 2025 年铝板品牌最新权威推荐排行榜:1-7 系主流铝板企业 TOP5 精选及工艺品质测评指南1060/1100/3003/3004/5052/6061/6063/6082铝板厂家推荐
  • 2025 防撞软包生产厂家权威推荐排行榜:E0 级环保 + B1 级阻燃,公检法 / 幼儿园场景最新优选厂家谈话室/留置病房/教育中心/体育馆防撞软包厂家推荐
  • 中位数定理
  • 计算机网络---网络层 - 详解
  • 国标GB28181视频平台EasyGBS:强大的视频监控与一站式视频服务解决方案
  • 题解:P13507 [OOI 2024] Three Arrays
  • 2025 年最新编织袋生产厂家权威推荐排行榜:聚焦 TOP5 优质企业,助力企业精准甄选可靠合作伙伴牛皮纸/塑料/PP彩膜/化工/化肥编织袋厂家推荐
  • # PostgreSQL高可用架构深度解析:从单机到分布式的演进之路
  • Foojay 播客 #71:与 James Gosling 一起庆祝 Java 诞生 30 周年
  • win 系统安装
  • 微算法科技(NASDAQ MLGO)探索全同态加密与安全多方计算融合,开启区块链隐私执行新时代
  • 2025 年棕刚玉源头厂家最新推荐排行榜:TOP 级生产厂家原料与烧结工艺权威解析,助力企业精准选购一级棕刚玉/棕刚玉磨料/优质棕刚玉/棕刚玉喷砂废料回收厂家推荐
  • 杀疯了!GitHub 发布 Copilot CLI!!!
  • 2025 年生态木厂商最新推荐榜单:TOP 前五企业实力解析及厂商选择指南生态木方通/户外地板/装饰线条/隔断/背景墙厂商推荐
  • 解题报告-泥路(muddyroad.*)
  • 2025 地坪研磨机厂家推荐权威推荐排行榜:品牌深度解析及格力 / 宁德时代合作案例速递水磨石/遥控式/座驾式/小型地坪研磨机厂家推荐
  • 2025 年真空袋生产厂家最新权威推荐排行榜:TOP 级企业工艺、服务及适配场景全景对比指南木箱/设备/海运防潮/铝塑/电柜真空袋厂家推荐
  • Win FAQ
  • Xcode 火焰图
  • 完整教程:Nginx反向代理与缓存功能
  • 【C++list】底层结构、迭代器核心原理与常用接口完成全解析
  • 完整教程:Flink Watermark机制解析
  • 2025 年北京湖南菜餐厅推荐:小湖南岸以湖湘本味与匠心服务,成京城湘菜口碑之选
  • Functions
  • 如何用 ShedLock 让 Spring Boot 的定时任务在多实例环境下只执行一次
  • 故障处理:Oracle表空间异常增长后又恢复正常的故障模拟与分析
  • ​​万用表与电流探头测量电流信号的技术对比分析​​
  • flink运行时架构 - --
  • WPF Canvas mark triangle, circle, and retangle, then save the whole canvas as jpg file
  • wifi亮灭屏机制--系统修改