最近的一个项目需要在工控机上完成,触摸屏,包括键盘输入。此时需要一个软键盘,只完成数字的输入就可以,但是操作系统自带的软键盘是包含非数字内容,且占用面积大。因此需要自己写一个软键盘的程序,在有数字输入的时候调用显示即可。
一、添加控件DotNetBar
在vs中,工具箱右键->选择项->浏览dotnetbar的dll 加载进来 ,工具箱里面就有dotnetbar 的控件了。在Form中拖入控件keyboardControl。
二、用代码添加软键盘的按键
public Form1()
{
InitializeComponent();
{
InitializeComponent();
keyboardControl1.Keyboard = CreateNumericKeyboard();
keyboardControl1.Invalidate();
keyboardControl1.Renderer = new ThreeDRenderer();
}
private Keyboard CreateNumericKeyboard()
{
Keyboard keyboard = new Keyboard();
LinearKeyboardLayout klNumLockOn = new LinearKeyboardLayout();
keyboardControl1.Renderer = new ThreeDRenderer();
}
private Keyboard CreateNumericKeyboard()
{
Keyboard keyboard = new Keyboard();
LinearKeyboardLayout klNumLockOn = new LinearKeyboardLayout();
klNumLockOn.AddKey("1");
klNumLockOn.AddKey("2");
klNumLockOn.AddKey("3");
klNumLockOn.AddKey("4");
klNumLockOn.AddKey("5");
klNumLockOn.AddKey("6");
klNumLockOn.AddKey("7");
klNumLockOn.AddKey("8");
klNumLockOn.AddKey("9");
klNumLockOn.AddKey("0");
klNumLockOn.AddKey(".");
klNumLockOn.AddKey("←", info: "{BACKSPACE}", width: 21);
klNumLockOn.AddKey("2");
klNumLockOn.AddKey("3");
klNumLockOn.AddKey("4");
klNumLockOn.AddKey("5");
klNumLockOn.AddKey("6");
klNumLockOn.AddKey("7");
klNumLockOn.AddKey("8");
klNumLockOn.AddKey("9");
klNumLockOn.AddKey("0");
klNumLockOn.AddKey(".");
klNumLockOn.AddKey("←", info: "{BACKSPACE}", width: 21);
keyboard.Layouts.Add(klNumLockOn);
return keyboard;
}
}
三、将键盘设置为浮动工具