You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
3.0 KiB
C#

using DevComponents.DotNetBar.Keyboard;
using POSV.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace POSV.Component
{
[ToolboxItem(true)]
public class LoginKeyboardControl: KeyboardControl
{
public LoginKeyboardControl()
{
this.Keyboard = CreateSimpleKeyboard();
VirtualKeyboardColorTable _colorTableCustom = new VirtualKeyboardColorTable();
_colorTableCustom.BackgroundColor = Color.White;
_colorTableCustom.KeysColor = ColorTranslator.FromHtml("#ececea");
_colorTableCustom.PressedKeysColor = Color.LightGray;
_colorTableCustom.TextColor = Color.White; //ColorTranslator.FromHtml("#666666");
_colorTableCustom.DownKeysColor = Color.LightGray;
_colorTableCustom.DownTextColor = Color.White;
_colorTableCustom.TopBarTextColor = Color.Black;
_colorTableCustom.ToggleTextColor = Color.DarkRed;
this.ColorTable = _colorTableCustom;
this.Font = Constant.NORMAL_FONT;
this.IsTopBarVisible = false;
this.Size = new Size(350, 330);
this.SendingKey += OnSendingKey;
}
private void OnSendingKey(object sender, KeyboardKeyCancelEventArgs e)
{
var key = e.Key;
switch (key)
{
case "清除":
{
InputSimulatorUtils.SendClear();
e.Cancel = true;
}
break;
case "{BACKSPACE}":
{
InputSimulatorUtils.SendKey(KeyCodes.Map["back"]);
e.Cancel = true;
}
break;
default:
{
if (KeyCodes.Map.ContainsKey(key))
{
InputSimulatorUtils.SendKey(KeyCodes.Map[key]);
e.Cancel = true;
}
}
break;
}
}
private Keyboard CreateSimpleKeyboard()
{
Keyboard keyboard = new Keyboard();
var line = new LinearKeyboardLayout();
line.AddKey("7");
line.AddKey("8");
line.AddKey("9");
line.AddLine();
line.AddKey("4");
line.AddKey("5");
line.AddKey("6");
line.AddLine();
line.AddKey("1");
line.AddKey("2");
line.AddKey("3");
line.AddLine();
line.AddKey("0");
line.AddKey("清除", info: null);
line.AddKey("Backspace", info: "{BACKSPACE}");
keyboard.Layouts.Add(line);
return keyboard;
}
}
}