<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      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; // 阻止默認處理
                  }
              }
          }
      }

       

      posted @ 2025-09-28 17:37  紫尋落  閱讀(4)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产一区二区日韩在线| 精品久久久久久中文字幕| 激情综合网激情国产av| 无码国产精品一区二区免费式芒果| 亚洲 中文 欧美 日韩 在线| 大香蕉av一区二区三区| 亚洲欧美电影在线一区二区| 日韩精品一区二区三免费| 国产人妻人伦精品婷婷| 国产中文三级全黄| 欧美日韩精品久久久免费观看| 九九热视频在线免费观看| 重口SM一区二区三区视频| av综合亚洲一区二区| 日韩无码视频网站| A毛片终身免费观看网站| 久久一夜天堂av一区二区| 国产美女久久久亚洲综合| 一区三区在线专区在线| 欧美成本人视频免费播放| 欧洲亚洲精品免费二区| 国产精品白丝久久AV网站| 青青草一区在线观看视频| 欧美大bbbb流白水| 高清自拍亚洲精品二区| 亚洲色大成网站www在线| 免费日韩av网在线观看| 亚洲成熟女人毛毛耸耸多| 成人午夜福利精品一区二区| 不卡国产一区二区三区| 一区二区三区四区五区自拍| 人人妻人人狠人人爽天天综合网| 亚洲精品人妻中文字幕| 欧美人人妻人人澡人人尤物| 欧洲美熟女乱又伦AV影片| 免费人成视频网站在线观看18| 精品人妻免费看一区二区三区| 中文字幕有码无码AV| 国精产品自偷自偷ym使用方法 | 国内熟女中文字幕第一页| 精品国产午夜福利在线观看|