using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; namespace POSV.Component { [ToolboxItem(true)] public partial class KeyboardExt : BaseUserControl { /// /// 是否允许输入小数点 /// bool allowDecimalSeparator = true; public KeyboardExt() { InitializeComponent(); } public bool AllowDecimalSeparator { get { return allowDecimalSeparator; } set { allowDecimalSeparator = value; this.touchButtonX17.Lock = !this.allowDecimalSeparator; this.touchButtonX17.SymbolSize = 10; } } /// /// 锁定 /// public void LockCancel() { foreach (Control btn in this.layoutPanel.Controls) { if (btn is TouchButtonX && !"关闭".Equals(btn.Text)) { TouchButtonX button = (TouchButtonX)btn; button.SymbolSize = 10; button.Lock = true; } } this.touchButtonX17.Lock = !this.allowDecimalSeparator; } /// /// 解除锁定 /// public void UnLockCancel() { foreach (Control btn in this.layoutPanel.Controls) { if (btn is TouchButtonX && !"关闭".Equals(btn.Text)) { TouchButtonX button = (TouchButtonX)btn; button.SymbolSize = 10; button.Lock = false; } } this.touchButtonX17.Lock = !this.allowDecimalSeparator; } /// /// 锁定 /// public void Lock() { foreach (Control btn in this.layoutPanel.Controls) { if (btn is TouchButtonX) { TouchButtonX button = (TouchButtonX)btn; button.SymbolSize = 10; button.Lock = true; } } this.touchButtonX17.Lock = !this.allowDecimalSeparator; } /// /// 解除锁定 /// public void UnLock() { foreach (Control btn in this.layoutPanel.Controls) { if (btn is TouchButtonX) { TouchButtonX button = (TouchButtonX)btn; button.SymbolSize = 10; button.Lock = false; } } this.touchButtonX17.Lock = !this.allowDecimalSeparator; } public event KeyboardExtEventHandler KeyboardBefore; protected virtual void OnKeyboardBefore(KeyboardExtEventArgs e) { KeyboardBefore?.Invoke(this, e); } public event KeyboardExtEventHandler KeyboardAfter; protected virtual void OnKeyboardAfter(KeyboardExtEventArgs e) { KeyboardAfter?.Invoke(this, e); } private void OnTouchBeforeClick(object sender, TouchEventArgs e) { this.OnKeyboardBefore(new KeyboardExtEventArgs(e.Value)); } private void OnTouchClick(object sender, TouchEventArgs e) { this.OnKeyboardAfter(new KeyboardExtEventArgs(e.Value)); } } public delegate void KeyboardExtEventHandler(object sender, KeyboardExtEventArgs e); public class KeyboardExtEventArgs : EventArgs { public readonly string KeyCode; public KeyboardExtEventArgs(string keyCode) { this.KeyCode = keyCode; } } }