• 程序模拟按键,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

  • 相关阅读:
    查看虚拟机里的Centos7的IP
    display:none visibility:hidden opacity:0区别
    UVA
    Gym
    Gym
    UVALive
    面试题1
    vuex的5个属性值
    vue中的.sync语法糖
    绝对定位实现垂直居中的优缺点
  • 原文地址:https://www.cnblogs.com/angestudy/p/2005281.html
Copyright © 2020-2023  润新知