C#代码,运用button控制键盘。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#代码,运用button控制键盘。相关的知识,希望对你有一定的参考价值。

是这样的,我是小白,连一点C#的基础都没有。我用U3D在屏幕里摆了2个button(1,2),我想让点击button1的时候,触发一下键盘的空格键,点击button2的时候,控制一下键盘左边的ALT键,该怎么写呢?
高分,测试可用的话会追加。谢谢高手们啦。
可能这样说的太简单了,不太好理解。我把原委仔细的说一下吧。我是做美工的,最近自己用U3D做了一个小项目练手。基础构架是用的网上找的,其中它里面有完善的角色控制系统。然后还用U3D的animator混合了动画。但是它的控制是用键盘来控制的,WASD/方向键来控制角色的移动,空格是跳跃,ALT是拾取东西,这些我都搞懂了。然后是想把U3D的插件EasyTouch混合进去做移动版,虽然直接把easytouch套用进去也是可以通过虚拟摇杆来控制角色的位移,但是easytouch调用动作的方式是很简单的(也可能可以很复杂,但是我不会),并且当用虚拟摇杆来移动角色的时候,并没有方向键移动的效果好,也就是说它们两个(方向键和虚拟摇杆)是两个独立的移动方式,另外easytouch的button脚本是调用的跳跃的动画。我想要的效果其实是:当我移动虚拟摇杆的时候,它的上下左右其实并不是去计算角色的Vector3,而是去对应键盘上的WASD或者说方向键。然后easytouch的button分别对应键盘上的空格键和ALT键。我知道如果会C#的话,完全可以实现用虚拟摇杆来实现跟方向键一样好的效果,但是我不会

你意思是要通过button控件键盘的按键是吧,很简单,使用SendKeys即可完成

先看下效果图:

看下面的完整代码:

using System;
using System.Windows.Forms;

namespace ButtonKeyboard

    public partial class Form1 : Form
    
        public Form1()
        
            InitializeComponent();
        

        private void button1_Click(object sender, EventArgs e)
        
            this.richTextBox1.Focus(); //这里要设置一个焦点,即你要在哪个控件中输入空格键,我这里设置为richTextBox
            SendKeys.Send(" ");  //发送空格键
            this.richTextBox1.Text += "空格键发送成功\\n";
        

        private void button2_Click(object sender, EventArgs e)
        
            SendKeys.Send("%"); //发送Alt键
            this.richTextBox1.Text += "Alt键发送成功\\n";
        
    

注意到图中第一行多了一个空格没有?那就是button1执行了空格键的结果

由于空格键有其特殊性,如果在Form1为焦点的情况下执行没有效果的,所以执行空格键之前要设置一下焦点

另外附加一些常用的sendkeys的代码表,如果需要一些特殊的按键,可以百度搜索"sendkeys特殊键"

--------------------------------------------------

以下是 SendKeys 的一些特殊键代码表。 

键 代码 

BACKSPACE BACKSPACE、BS 或 BKSP 

BREAK BREAK 

CAPS LOCK CAPSLOCK 

DEL 或 DELETE DELETE 或 DEL 

DOWN ARROW(下箭头键) DOWN 

END END 

ENTER ENTER 或 ~ 

ESC ESC 

HELP HELP 

HOME HOME 

INS 或 INSERT INSERT 或 INS 

LEFT ARROW(左箭头键) LEFT 

NUM LOCK NUMLOCK 

PAGE DOWN PGDN 

PAGE UP PGUP 

PRINT SCREEN PRTSC(保留,以备将来使用) 

RIGHT ARROW(右箭头键) RIGHT 

SCROLL LOCK SCROLLLOCK 

TAB TAB 

UP ARROW(上箭头键) UP 

F1 F1 

F2 F2 

F3 F3 

F4 F4 

F5 F5 

F6 F6 

F7 F7 

F8 F8 

F9 F9 

F10 F10 

F11 F11 

F12 F12 

F13 F13 

F14 F14 

F15 F15 

F16 F16 

数字键盘加号 ADD 

数字键盘减号 SUBTRACT 

数字键盘乘号 MULTIPLY 

数字键盘除号 DIVIDE 


若要指定与 SHIFT、CTRL 和 ALT 键的任意组合一起使用的键,请在这些键代码之前加上以下一个或多个代码: 


键 代码 

SHIFT + 

CTRL ^ 

ALT %

参考技术A 触发键盘做什么?

学习进度--大三下

第三周学习进度
  第三周
所花时间(包括上课) 300min
代码量(行) 405
博客量(篇) 2
了解到的知识点

C#

运用拖动控件来编写窗口。

后来发现我运用得很不灵活,有些地方还是要编写代码来写它的逻辑。

之后就直接全部以代码的形式编写了一个登陆界面。

学会运用了控件,其属性和方法。

如Label,Button等,然后可引用函数Button_click,来编写点击按钮后的事件。

学会连接了数据库,SQLserver。

以上是关于C#代码,运用button控制键盘。的主要内容,如果未能解决你的问题,请参考以下文章

C#全局键盘钩子,从控制台应用程序打开一个表单[重复]

在C#编程中用键盘上的方向键来控制一张图片的移动的代码怎么写啊?要简单具体的!!!

C#如何全局禁用键盘的回车键

学习进度--大三下

C#中,给WinForm窗体中添加了几个按钮后就不会响应键盘事件了

如何用C#代码触发button-click事件