zoukankan      html  css  js  c++  java
  • 程序模拟按键,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

  • 相关阅读:
    用户模版
    VC让对话框显示就最大化
    C#中char[]与string之间的转换
    c#调用C++DLL参数对应
    解决:对 PInvoke 函数的调用导致堆栈不对称问题 <转载>
    git 命令的使用
    me 云面试
    Django 自定义模板语法
    Django session 源码流程
    云计算的介绍
  • 原文地址:https://www.cnblogs.com/angestudy/p/2005281.html
Copyright © 2011-2022 走看看