C#如何接收键盘的上下左右按键?

貌似键盘的上下左右键没有对应的ASCII码啊?那怎么判断是否按下了上下左右键呢?... 貌似键盘的上下左右键没有对应的ASCII码啊?那怎么判断是否按下了上下左右键呢? 展开
 我来答
SecretX
2010-01-29
知道答主
回答量:7
采纳率:0%
帮助的人:15.2万
展开全部
一般来说,我们一个控件都会有三个事件,分别是
KeyDown,KeyPress和KeyUp
其中,KeyDown对应(键盘或者鼠标)按下
而KeyUp则对应松开,或者说弹起来。
而KeyPress则在你按下并松开按键的时候,会先后触发KeyDown事件和KeyUp事件
例如KeyDown我需要响应键盘的“上”
private void txtRemark_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
//codes what you want
}
}
可怜的骄傲吗
2012-06-19
知道答主
回答量:3
采纳率:0%
帮助的人:4771
展开全部
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class enterevent : Form
{
public enterevent()
{
InitializeComponent();
}

private void t1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t4.Focus();
}
else if (e.KeyValue == 40)
{
t4.Focus();
}
else if (e.KeyValue == 39)
{
t2.Focus();
}
else if (e.KeyValue == 38)
{
t7.Focus();
}
else if (e.KeyValue==37)
{
t9.Focus();
}
}

private void t2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t4.Focus();
}
else if (e.KeyValue == 40)
{
t5.Focus();
}
else if (e.KeyValue == 39)
{
t3.Focus();
}
else if (e.KeyValue == 38)
{
t8.Focus();
}
else if (e.KeyValue == 37)
{
t1.Focus();
}

}

private void t3_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t4.Focus();
}
else if (e.KeyValue == 40)
{
t6.Focus();
}
else if (e.KeyValue == 39)
{
t4.Focus();
}
else if (e.KeyValue == 38)
{
t9.Focus();
}
else if (e.KeyValue == 37)
{
t2.Focus();
}

}

private void t4_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t7.Focus();
}
else if (e.KeyValue == 40)
{
t7.Focus();
}
else if (e.KeyValue == 39)
{
t5.Focus();
}
else if (e.KeyValue == 38)
{
t1.Focus();
}
else if (e.KeyValue == 37)
{
t3.Focus();
}
}

private void t5_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t7.Focus();
}
else if (e.KeyValue == 40)
{
t8.Focus();
}
else if (e.KeyValue == 39)
{
t6.Focus();
}
else if (e.KeyValue == 38)
{
t2.Focus();
}
else if (e.KeyValue == 37)
{
t4.Focus();
}
}

private void t6_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t7.Focus();
}
else if (e.KeyValue == 40)
{
t9.Focus();
}
else if (e.KeyValue == 39)
{
t7.Focus();
}
else if (e.KeyValue == 38)
{
t3.Focus();
}

else if (e.KeyValue == 37)
{
t5.Focus();
}

}

private void t7_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t1.Focus();
}
else if (e.KeyValue == 40)
{
t1.Focus();
}
else if (e.KeyValue == 39)
{
t8.Focus();
}
else if (e.KeyValue == 38)
{
t4.Focus();
}

else if (e.KeyValue == 37)
{
t6.Focus();
}

}

private void t8_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t1.Focus();
}
else if (e.KeyValue == 40)
{
t2.Focus();
}
else if (e.KeyValue == 39)
{
t9.Focus();
}
else if (e.KeyValue == 38)
{
t5.Focus();
}

else if (e.KeyValue == 37)
{
t7.Focus();
}
}

private void t9_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
t1.Focus();
}
else if (e.KeyValue == 40)
{
t3.Focus();
}
else if (e.KeyValue == 39)
{
t1.Focus();
}
else if (e.KeyValue == 38)
{
t6.Focus();
}

else if (e.KeyValue == 37)
{
t8.Focus();
}
}

private void button1_Click(object sender, EventArgs e)
{
StringBuilder str = new StringBuilder();
str.AppendFormat("第一个输入值是:"+t1.Text);
str.AppendFormat("\n第二个输入值是:" + t2.Text);
str.AppendFormat("\n第三个输入值是:" + t3.Text);
str.AppendFormat("\n第四个输入值是:" + t4.Text);
str.AppendFormat("\n第五个输入值是:" + t5.Text);
str.AppendFormat("\n第六个输入值是:" + t6.Text);
str.AppendFormat("\n第七个输入值是:" + t7.Text);
str.AppendFormat("\n第八个输入值是:" + t8.Text);
str.AppendFormat("\n第九个输入值是:" + t9.Text);
MessageBox.Show(str.ToString());
}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}

private void enterevent_Load(object sender, EventArgs e)
{

}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rail_fish
2010-01-29 · TA获得超过369个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:0
展开全部
如果不需要太复杂的可以不用API

KeyEventArgs
这个结构里有,看你要从哪里获取了,如果你用事件的话,事件函数一定会带(KeyEventArgs e)类似这样的参数
用e.KeyCode可以确认哪个按下了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山暮东郭美丽
2020-03-02 · TA获得超过3843个赞
知道大有可为答主
回答量:3158
采纳率:28%
帮助的人:207万
展开全部
keypreview
属性设为true
这个是键盘在窗体注册的属性
楼主你也可以用ascii码去实现
键盘上的每一个键都对应一个ascii码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pcweekend
2010-01-29 · TA获得超过145个赞
知道答主
回答量:138
采纳率:0%
帮助的人:37.7万
展开全部
看二楼的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式