SendKeys.SendWait("{NumPad0}");//{NumPad0}本身是错的,不能接收这个参数~~~你想要的是不是这个SendKeys.SendWait("{"+e.KeyCode.ToString()+"}");

解决方案 »

  1.   

    TO:he_8134()
    你这样只能输出字符串,我需要的是模拟键盘按键。我定义了一组按键,然后按顺序输出。
    但在遇到特殊按键的时候,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}");
    }
    .................如果我要输出全部这么多个特殊按键,这样的代码不就很繁琐吗?请问有没有更好的办法?
      

  2.   

    //如果按下回车
    //e.KeyCode.ToString()就等于"Enter"//如果按下Home
    //e.KeyCode.ToString()就等于"Enter"SendKeys.SendWait();接受一个字符串参数//所以这样
    string str=e.KeyCode.ToString();
    SendKeys.SendWait("{"+str+"}");//------------------------------------
    但是数字键
    SendKeys.SendWait("{NumPad0}");//这个参数本身非法!
      

  3.   

    哦,那这样的话,类似小键盘中的“NumPad3、NumPad09”和数字键的“D5、D6”这样的值,该怎样处理好?
      

  4.   

    并且e.KeyCode.ToString()返回的字符串是:Return而SendKeys.SendWait("{"+str+"}")这里的回车字符应该是{ENTER}
      

  5.   

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
            {
                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 + "}";
            }
      

  6.   

    SendKeys.SendWait("{"+e.KeyCode.ToString()+"}");