键盘响应简单问题(送分一样) 组合键麻,API可能好点。好像叫GetKeystoreState之类的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实我想要的就是判断按下键 比如就是我按下A键是一个事件,按下B键是一个事件,按下A+B又是另一个事件. 但是用KeYDown只能判断一个键!! 还有其他方法吗?! 呵呵,思路要放宽点嘛,按键也是分值的在keydown事件中写上如下代码:if (e.Control){switch (e.KeyCode){case Keys.Insert:case Keys.C: // ** copyClipboard.SetDataObject(fgFlex.Clip);break;case Keys.X: // ** cutClipboard.SetDataObject(fgFlex.Clip);CellRange rg = fgFlex.Selection;rg.Data = null;break;case Keys.V: // ** pasteIDataObject data = Clipboard.GetDataObject();if (data.GetDataPresent(typeof(string))){fgFlex.Select(fgFlex.Row, fgFlex.Col, fgFlex.Rows.Count-1, fgFlex.Cols.Count-1, false);fgFlex.Clip = (string)data.GetData(typeof(string));fgFlex.Select(fgFlex.Row, fgFlex.Col, false);}break;}} 可以用Keydown的KeyCode来判断组合事件 回rachy(黑色雨) : 我以为会比较简单,没想到~~~分数可以再加的嘛! 照你所说,但我现在先按下A在不释放A的条件下再按下B,这个时候键盘并不响应A+B的按键,而是去响应B的按键了,着该怎么解决?! 而且我需要不用shift,control```等特殊键组合. 回 forover(天下无吥散dě宴席): 怎么判断组合事件,请说清楚点儿,谢谢! 上面有高手说了用API函数,用keydown事件是不行的 用keydown跟keyup来捕捉组合键a+b事件代码如下,你可以参考一下bool KeyA = false;bool KeyB = false;private void Onkeyup(object sender, System.Windows.Forms.KeyEventArgs e){ switch(e.KeyCode) { case Keys.A: KeyA = false; this.Text = ""; break; case Keys.B: KeyB = false; this.Text = ""; break; }}private void Onkeydown(object sender, System.Windows.Forms.KeyEventArgs e){ switch(e.KeyCode) { case Keys.A: KeyA = true; if(KeyB == true) this.Text = "A + B"; break; ase Keys.B: KeyB = true; if(KeyA == true) this.Text = "A + B"; break; }} 如何直接保存datagridview的数据 求助 c# 未将对象引用到对象的实例 高手进 C#高级编程 如何让数据库自动删除数据 翻译以逗号隔开的id 如何成功绑定后台函数 webbrowser中显示带有VML元素的网页问题 GUID 类型的字段,在C#中如何 binding ? 高分求PUSH模式和PULL模式的样板程序! 紧急求助.NET3.0 wwf安装问题 请问mapi控件在哪里啊,我在COM组件选择中没找到啊! 能用一个命令把同一服务器的DB_1,复制到一个新建的空数据库DB_2里面吗?postgreSql
比如就是我按下A键是一个事件,按下B键是一个事件,按下A+B又是另一个事件.
但是用KeYDown只能判断一个键!!
还有其他方法吗?!
在keydown事件中写上如下代码:
if (e.Control)
{
switch (e.KeyCode)
{
case Keys.Insert:
case Keys.C: // ** copy
Clipboard.SetDataObject(fgFlex.Clip);
break;
case Keys.X: // ** cut
Clipboard.SetDataObject(fgFlex.Clip);
CellRange rg = fgFlex.Selection;
rg.Data = null;
break;
case Keys.V: // ** paste
IDataObject data = Clipboard.GetDataObject();
if (data.GetDataPresent(typeof(string)))
{
fgFlex.Select(fgFlex.Row, fgFlex.Col, fgFlex.Rows.Count-1, fgFlex.Cols.Count-1, false);
fgFlex.Clip = (string)data.GetData(typeof(string));
fgFlex.Select(fgFlex.Row, fgFlex.Col, false);
}
break;
}
}
我以为会比较简单,没想到~~~分数可以再加的嘛!
照你所说,但我现在先按下A在不释放A的条件下再按下B,这个时候键盘并不响应A+B的按键,而是去响应B的按键了,着该怎么解决?!
而且我需要不用shift,control```等特殊键组合.
回 forover(天下无吥散dě宴席):
怎么判断组合事件,请说清楚点儿,谢谢!
代码如下,你可以参考一下
bool KeyA = false;
bool KeyB = false;
private void Onkeyup(object sender, System.Windows.Forms.KeyEventArgs e)
{
switch(e.KeyCode)
{
case Keys.A:
KeyA = false;
this.Text = "";
break;
case Keys.B:
KeyB = false;
this.Text = "";
break;
}
}private void Onkeydown(object sender, System.Windows.Forms.KeyEventArgs e)
{
switch(e.KeyCode)
{
case Keys.A:
KeyA = true;
if(KeyB == true)
this.Text = "A + B";
break;
ase Keys.B:
KeyB = true;
if(KeyA == true)
this.Text = "A + B";
break;
}
}