C# keydown事件问题 高手速度来

privatevoiddgvEmployee_PreviewKeyDown(objectsender,PreviewKeyDownEventArgse){stringKe... private void dgvEmployee_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
string Key = e.KeyCode.ToString().ToLower();
for (int i = 0; i < dgvEmployee.Rows.Count-4; i++)
{
string dgvKey = dgvEmployee.Rows[i].Cells[1].Value.ToString();
if (Key.Length == 1)
{
int str = dgvKey.IndexOf(Key, 0, 1);
if (str != -1)
{
dgvEmployee.CurrentCell = dgvEmployee.Rows[i].Cells[1];
break;
}
}
}
}
这个事件可以完成,当用键盘输入'C'的时候,就可以定位到以C开头的名称。可如果我输入‘CA’的时候,怎么定位到CA开头的名称啊?这个事件刚输入一个字符的时候,就响应了。

请来点实际有用的方法 我马上实验的 好的话加分 谢谢
展开
 我来答
多喝水3K
2009-01-06 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:92.6万
展开全部
当你输入CA的时候,程序并不知道你要找的是ca开头的或者是a开头的。
这个中间要引入一个时间因素,如果按键时间大于1秒(假设),则判定为不同的关键字索引。
声明全局变量DateTime lastPress;string Key;
然后在你PreviewKeyDown事件中进行判断
if(((TimeSpan)(DateTime.Now-lastPress)).TotalSeconds>1)
{
Key=e.KeyCode.ToString().ToLower();
}
else
{
key+=e.KeyCode.ToString().ToLower();
}
//重新赋值
lastPress=DateTime.Now;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海V飞天
2009-01-06 · TA获得超过450个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:272万
展开全部
描述的的确不清楚 如果你是先按C再按A 那么就先用一个arraylist存储第一个C 然后输入A的时候根据arraylist的长度来决定这个
dgvEmployee.CurrentCell = dgvEmployee.Rows[i].Cells[长度];
依次类推 如果要重新搜索就清空arraylist
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yj4018no1
2009-01-05 · 超过12用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:20.6万
展开全部
还是做一个输入框

键盘事件只是一个方法

在方法里面取你输入框的值 做你的判断定位

也可以用类似的变量方法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xupeiying
2009-01-05 · TA获得超过468个赞
知道小有建树答主
回答量:553
采纳率:0%
帮助的人:571万
展开全部
你把第一个先放一个静态变量里,输入第二个的时候俩个放一起,在比较
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guofeng_zhang
2009-01-06 · 超过18用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:66.8万
展开全部
if(e.KeyCode==Keys.C && e.KeyCode==Keys.A)
{
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式