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开头的名称啊?这个事件刚输入一个字符的时候,就响应了。
请来点实际有用的方法 我马上实验的 好的话加分 谢谢 展开
{
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开头的名称啊?这个事件刚输入一个字符的时候,就响应了。
请来点实际有用的方法 我马上实验的 好的话加分 谢谢 展开
展开全部
当你输入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;
这个中间要引入一个时间因素,如果按键时间大于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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
描述的的确不清楚 如果你是先按C再按A 那么就先用一个arraylist存储第一个C 然后输入A的时候根据arraylist的长度来决定这个
dgvEmployee.CurrentCell = dgvEmployee.Rows[i].Cells[长度];
依次类推 如果要重新搜索就清空arraylist
dgvEmployee.CurrentCell = dgvEmployee.Rows[i].Cells[长度];
依次类推 如果要重新搜索就清空arraylist
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还是做一个输入框
键盘事件只是一个方法
在方法里面取你输入框的值 做你的判断定位
也可以用类似的变量方法
键盘事件只是一个方法
在方法里面取你输入框的值 做你的判断定位
也可以用类似的变量方法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把第一个先放一个静态变量里,输入第二个的时候俩个放一起,在比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(e.KeyCode==Keys.C && e.KeyCode==Keys.A)
{
}
{
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询