MyUiInput.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Model;
  2. using Permission;
  3. using Sunny.UI;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. public class MyUiInput : UITextBox,IKeyboardInputControl, IPermissionControl, IActionableControl
  12. {
  13. [Category("MyControl")]
  14. [Description("控件要求的权限等级")]
  15. [Browsable(true)]
  16. [DefaultValue(PermissionLevel.操作工)]
  17. public PermissionLevel RequiredPermissionLevel { get => requiredPermissionLevel; set { requiredPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= RequiredPermissionLevel; HandlePermissionChange(); } }
  18. private PermissionLevel requiredPermissionLevel = PermissionLevel.操作工;
  19. [Category("MyControl")]
  20. [Description("当前登录的权限")]
  21. [Browsable(false)]
  22. [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  23. public PermissionLevel CurrentPermissionLevel { get => currentPermissionLevel; set { currentPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= RequiredPermissionLevel; HandlePermissionChange(); } }
  24. private PermissionLevel currentPermissionLevel = PermissionLevel.无权限;
  25. [Category("MyControl")]
  26. [Description("控件是否获得了权限")]
  27. [Browsable(false)]
  28. [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  29. public bool IsPermissionGot { get; private set; }
  30. protected virtual void HandlePermissionChange()
  31. {
  32. this.Enabled = IsPermissionGot;
  33. }
  34. [Category("MyControl")]
  35. [Description("是否使用软键盘输入")]
  36. [DefaultValue(true)]
  37. public bool UseSoftKeyboard { get => useSoftKeyboard; set { useSoftKeyboard = value; /*ReadOnly = value;*/ } }
  38. private bool useSoftKeyboard = true;
  39. public MyUiInput()
  40. {
  41. this.Click += MyUiInput_Click;
  42. }
  43. private void MyUiInput_Click(object sender, EventArgs e)
  44. {
  45. OnCunstomClick(e);
  46. }
  47. protected virtual void OnCunstomClick(EventArgs e)
  48. {
  49. }
  50. }