c#winform怎么从键盘keydown中获取按下的按键并传到其他类里

YQ.yang 2020-03-31 10:09:47
比如在form窗口keydown事件下
public void GameBeginForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 74)
{
//
}
else if(e.KeyValue == 73)
{
//
}
}
然后我想获取这个KeyValue,并传送到其他类中使用,有什么简单的方法吗?
...全文
472 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
YQ.yang 2020-04-02
  • 打赏
  • 举报
回复
引用 3 楼 xcheng1987 的回复:
没搞懂你什么意思? e.KeyValue 不是获取到了吗?直接在另一个类 创建一个public变量接收就可以
我没办法把值从GameBeginForm_KeyDown()里拿出来
desperaso 2020-04-01
  • 打赏
  • 举报
回复
焦点在哪里均相应Alt-X弹出窗口

public Form1()
{
InitializeComponent();
KeyPreview = true;
this.KeyDown += (s, e) => { if (e.Alt && e.KeyCode == Keys.X) MessageBox.Show("press"); };

TextBox textBox = new TextBox() { Size = new Size(100,20), Location = new Point(10,230), };
this.Controls.Add(textBox);

RichTextBox richText = new RichTextBox() { Size = new Size(200, 200), Location = new Point(10,10), };
this.Controls.Add(richText);

richText.Focus();
}
github_36000833 2020-04-01
  • 打赏
  • 举报
回复
引用 2 楼 github_36000833 的回复:
...方向键属于CmdKey类别,可能普通的FormKeyDown不会处理。
回错帖子了:-)
xcheng1987 2020-04-01
  • 打赏
  • 举报
回复
没搞懂你什么意思? e.KeyValue 不是获取到了吗?直接在另一个类 创建一个public变量接收就可以
github_36000833 2020-04-01
  • 打赏
  • 举报
回复
引用 1 楼 desperaso 的回复:
Form.KeyPreview = true; ...
方向键属于CmdKey类别,可能普通的FormKeyDown不会处理。
desperaso 2020-04-01
  • 打赏
  • 举报
回复
Form.KeyPreview = true;

private static void FormKeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyCode == Keys.X) // 剪切
{
...............................
}
}
penglan_ 2020-04-01
  • 打赏
  • 举报
回复
类变量不就能传值了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧