SendKeys.SendWait("{NumPad0}");//{NumPad0}本身是错的,不能接收这个参数~~~你想要的是不是这个SendKeys.SendWait("{"+e.KeyCode.ToString()+"}");
解决方案 »
- .net有没有关于父线程和子线程的概念,怎么将添加子线程到父线程等相关操作?
- string.format 问题
- DataGridView有没有一个实现反选的事件
- c# 里怎样才能在程序捕获异常后继续执行
- 请问Excel导入数据的问题
- 如何得知DataGridView的行数?
- 求教高手:如何用C#程序控制IIS虚拟目录的应用程序映射?
- 两套系统的数据同步问题,请朋友们帮忙
- ewebediter如何使用?
- Charles Petzold的Programming Windows with Microsoft Visual C#.NET
- 在C#.net1.1中调用api kernel32.dll 在win xp上运行出现 没有注册类别 请问大侠是怎么回事??
- sqlhelper存储过程返回影响行数
你这样只能输出字符串,我需要的是模拟键盘按键。我定义了一组按键,然后按顺序输出。
但在遇到特殊按键的时候,SendKeys.SendWait只能{DOWN}这样的形式输出,所以我需要这样判断:
if(e.KeyCode == Keys.Enter)
{
SendKeys.SendWait("{ENTER}");
}if(e.KeyCode == Keys.END)
{
SendKeys.SendWait("{END}");
}if(e.KeyCode == Keys.Home)
{
SendKeys.SendWait("{HOME}");
}
.................如果我要输出全部这么多个特殊按键,这样的代码不就很繁琐吗?请问有没有更好的办法?
//e.KeyCode.ToString()就等于"Enter"//如果按下Home
//e.KeyCode.ToString()就等于"Enter"SendKeys.SendWait();接受一个字符串参数//所以这样
string str=e.KeyCode.ToString();
SendKeys.SendWait("{"+str+"}");//------------------------------------
但是数字键
SendKeys.SendWait("{NumPad0}");//这个参数本身非法!
{
textBox1.Text = GetSendKey((Keys)e.KeyCode);
} private string GetSendKey(Keys key)
{
string sendKey = "";
switch (key)
{
case Keys.Shift:
case Keys.ShiftKey:
case Keys.RShiftKey:
case Keys.LShiftKey:
sendKey = "+";
break;
case Keys.Alt:
case Keys.Menu:
case Keys.LMenu:
case Keys.RMenu:
sendKey = "%";
break;
case Keys.Control:
case Keys.ControlKey:
case Keys.RControlKey:
case Keys.LControlKey:
sendKey = "^";
break;
case Keys.Enter:
sendKey = "ENTER";
break;
default:
sendKey = key.ToString();
break;
}
return sendKey = "{" + sendKey + "}";
}