要求:1 不管有无按Shift,Ctrl,Alt键
2 不管有无锁定大小写
3 不管有无启开输入法.
只要敲击键盘,就只输出小写字母和数字.已经用全局钩子拦截下键盘,但不会处理成只输出小写和数字.其中第3条不知能不能实现?第1,2条应该不难吧.请各位指点一下.
2 不管有无锁定大小写
3 不管有无启开输入法.
只要敲击键盘,就只输出小写字母和数字.已经用全局钩子拦截下键盘,但不会处理成只输出小写和数字.其中第3条不知能不能实现?第1,2条应该不难吧.请各位指点一下.
调试欢乐多
string s = Console.ReadLine().ToLower();
例如 用户按了Shift+a或Ctrl+a,这时要求只输出小写a,如何做到呢
如果按你的要求,阿拉伯数字的ascii码是48-57,小写字母的ascii码是97-122:
int kc = Convert.ToInt32(e.KeyChar);
if(kc>=65&&kc<=106)
kc=kc+32;
if((kc>=48&&kc<=57)||(kc>=97&&kc<=122))
e.Handled=true;
style='text-transform: uppercase;'
这个是大写,小写的我好像忘记怎么拼写了..你自己去看看,好像也是lower
在后台再进行ToLower();就可以获得大写的值了了
我要向别人的程序输键盘信息(这程序我无权修改),如果用户按了Shift+a或Ctrl+a等,如何屏蔽掉Shift,Ctrl等信息,让键盘只输出a
在keypress事件中,e.KeyChar是键盘统一编码值,如ctrl+a将得到0x0001(好象是,记不清了),这个值是唯一的,通过查表可以得到是哪几个键的组合。
方法二:
在PreviewKeyDown事件中,变量e中将分别标记ASCII码键,ctrl、shift、alt以及鼠标状态。建议使用方法二。
0x0001~0x007f ASCII码
0x0001~0x001f 控制码
0x0020~0x007e ASCII码可见字符
0x0041~0x005a 大写字母
0x0061~0x007a 小写字母
private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar <= 0x1f)
MessageBox.Show("ASCII控制吗");
else if ((e.KeyChar <= 0x39) && (e.KeyChar >= 0x30))
MessageBox.Show("数字键");
else if ((e.KeyChar >= 0x41) && (e.KeyChar <= 0x5a))
MessageBox.Show("大写字母");
else if ((e.KeyChar >= 0x61) && (e.KeyChar <= 0x7a))
MessageBox.Show("小写字母");
}