重写ProcessCmdKey函数后,程序只对其中捕获的按键信息有反应,按其他键则没有任何反应,这可怎么办阿?
解决方案 »
- dataGridView二次绑定数据源后,readOnly属性无法修改
- DataGridView问题
- C/S结构,sql server如何设置以及如何写连接字符串问题。
- 求一个VS2008+MSSQL开发的Blog源码,界面最好是英文的!
- dataGridView中直接显示两张表
- 整个网站只有一个connection对象时,该连接却对象只能使用一次!!!为什么啊??????郁闷.......急!急!急!急!
- 我们平时多人开发的时候能否生成类似MSDN样式的帮助文档呢?
- 关于C#中循环判断的问题!(简单问题)
- 求大手解决下批文件调用的问题!
- Windows 2003 Server建邮件服务器
- 大师级的修改 cxGrid完全控制(含Source可下载,另含Demo),无需任何验证
- ***********《设计模式》作者之一John Vlissides逝世,表示悲哀的进来顶一下,并说说你的心里话************
{
if ( (!(ActiveControl is Button)) && (keyData==Keys.Up || keyData==Keys.Down || keyData==Keys.Enter))
{
if(keyData == Keys.Enter)
{
System.Windows.Forms.SendKeys.Send("{TAB}");
return true;
}
if(keyData==Keys.Down )
System.Windows.Forms.SendKeys.Send("{TAB}");
else
SendKeys.Send("+{Tab}");
return true;
}
else
return base.ProcessCmdKey(ref msg,keyData); ////是不是少了这个
}
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if(EnterAsTab&&msg.WParam.ToInt32() == (int) Keys.Enter)
{
SendKeys.Send("{Tab}");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
string s;
s = keyData.ToString();
SendKeys.Send(s);我是这么写的,为什么不行了?
我使用Key.Control+keys.V进行判断,但系统提示错误,说是不能使用“+”操作符?
但是我看到有些人说可以这么写的阿
BACKSPACE {BACKSPACE}、{BS} 或 {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL 或 DELETE {DELETE} 或 {DEL}
DOWN ARROW(下箭头键) {DOWN}
END {END}
ENTER {ENTER} 或 ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS 或 INSERT {INSERT} 或 {INS}
LEFT ARROW(左箭头键) {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}(保留供将来使用)
RIGHT ARROW(右箭头键) {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW(上箭头键) {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
数字键盘加号 {ADD}
数字键盘减号 {SUBTRACT}
数字键盘乘号 {MULTIPLY}
数字键盘除号 {DIVIDE}
请重写
protected override bool ProcessDialogKey(Keys keyData)
{
if(keyData==(Keys.Control|Keys.V))
}
ctrl+v是系统键,不知道能不能行,不过我用ctrl+delete测试过,没问题,
忘了是用|还是&,你试试