using Model; using Permission; using Sunny.UI; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; public class MyUiInput : UITextBox,IKeyboardInputControl, IPermissionControl, IActionableControl { [Category("MyControl")] [Description("控件要求的权限等级")] [Browsable(true)] [DefaultValue(PermissionLevel.操作工)] public PermissionLevel RequiredPermissionLevel { get => requiredPermissionLevel; set { requiredPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= RequiredPermissionLevel; HandlePermissionChange(); } } private PermissionLevel requiredPermissionLevel = PermissionLevel.操作工; [Category("MyControl")] [Description("当前登录的权限")] [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public PermissionLevel CurrentPermissionLevel { get => currentPermissionLevel; set { currentPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= RequiredPermissionLevel; HandlePermissionChange(); } } private PermissionLevel currentPermissionLevel = PermissionLevel.无权限; [Category("MyControl")] [Description("控件是否获得了权限")] [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool IsPermissionGot { get; private set; } protected virtual void HandlePermissionChange() { this.Enabled = IsPermissionGot; } [Category("MyControl")] [Description("是否使用软键盘输入")] [DefaultValue(true)] public bool UseSoftKeyboard { get => useSoftKeyboard; set { useSoftKeyboard = value; /*ReadOnly = value;*/ } } private bool useSoftKeyboard = true; public MyUiInput() { this.Click += MyUiInput_Click; } private void MyUiInput_Click(object sender, EventArgs e) { OnCunstomClick(e); } protected virtual void OnCunstomClick(EventArgs e) { } }