程序模拟按键,SendKeys发送空格

做了一个小程序,用按钮来模拟数字的输入,如下图

image

将10个按钮放在一个panel1中,名称分别是button1,button2,后面依次类推

下面的文本框名称为textBox1

我不知道想要解决的问题:当点击一个按钮时,就如同用户输入了一个数字,并在其后打了一个空格,比如我点击一下8,相当于在textBox1中输入了8,然后再跟一个空格.

分析:为panel1中的每一个按钮增加一个点击事件,并将按钮自身的文本赋值给textBox1,然后使用SendKeys发送一个空格.

中文MSDN上查了一下,发现并没有SendKeys发送空格的办法,还好有前辈发现了其实发送空格的办法在英文的MSDN上面有:http://msdn.microsoft.com/en-us/library/8c6yea83

 

 

private void 给10个按钮添加打字事件()
        {
            //遍历在panel1中的每一个控件,设置其Click事件的实现
            foreach (var item in panel1.Controls)
            {
                ((Button)item).Click += new EventHandler(测试_Click);
            }
        }

        void 测试_Click(object sender, EventArgs e)
        {
            textBox1.Text = ((Button)sender).Text;
            textBox1.Focus();//注意需要将焦点设置在文本框中,不然看不到效果
            SendKeys.Send(" ");
        }

这种使用foreach的办法来给每一个按钮设置事件比单独一个个的设置要方便的多,如果以后要增加按钮的数量,也不用更改这儿的程序,只要这个按钮在panel1里面!

一般来说SendKeys.Send()方法需要在里面加上一个按键的描述,空格比较特殊,直接键入,这反倒把人给弄糊涂了,比如

SendKeys.Send("{ENTER}");==>键入回车

SendKeys.Send("{BACKSPACE}");==>键入删除前一字符

SendKeys.Send("{LEFT}");==>键入向左键

如果想看全部的按键,可以在MSDN上找到详细的说明:

http://msdn.microsoft.com/zh-cn/library/system.windows.forms.sendkeys.send.aspx

原文地址:https://www.cnblogs.com/angestudy/p/2005281.html