C#代码,运用button控制键盘。 150
高分,测试可用的话会追加。谢谢高手们啦。
可能这样说的太简单了,不太好理解。我把原委仔细的说一下吧。我是做美工的,最近自己用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 %