MyUiComboBox.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using Model;
  2. using Permission;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Drawing;
  7. using System.Drawing.Design;
  8. using System.Windows.Forms;
  9. public class MyUIComboBox:UiComboBox, IPermissionControl, IActionableControl
  10. {
  11. [Category("MyControl")]
  12. [Description("控件要求的权限等级")]
  13. [Browsable(true)]
  14. [DefaultValue(PermissionLevel.操作工)]
  15. public PermissionLevel RequiredPermissionLevel { get => requiredPermissionLevel; set { requiredPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= RequiredPermissionLevel; HandlePermissionChange(); } }
  16. private PermissionLevel requiredPermissionLevel = PermissionLevel.操作工;
  17. [Category("MyControl")]
  18. [Description("当前登录的权限")]
  19. [Browsable(false)]
  20. [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  21. public PermissionLevel CurrentPermissionLevel { get => currentPermissionLevel; set { currentPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= RequiredPermissionLevel; HandlePermissionChange(); } }
  22. private PermissionLevel currentPermissionLevel = PermissionLevel.无权限;
  23. [Category("MyControl")]
  24. [Description("控件是否获得了权限")]
  25. [Browsable(false)]
  26. [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  27. public bool IsPermissionGot { get; private set; }
  28. protected virtual void HandlePermissionChange()
  29. {
  30. this.Enabled = IsPermissionGot;
  31. }
  32. public MyUIComboBox()
  33. {
  34. this.SelectedIndexChanged += MyUIComboBox_SelectedIndexChanged;
  35. }
  36. private void MyUIComboBox_SelectedIndexChanged(object sender, EventArgs e)
  37. {
  38. }
  39. }