PanelExtensions.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using DevExpress.CodeParser;
  2. using DevExpress.Utils;
  3. using DevExpress.XtraEditors;
  4. using DevExpress.XtraEditors.Controls;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using Ips.Library.Basic;
  11. using DevExpress.Utils.Url;
  12. namespace Ips.Library.DxpLib
  13. {
  14. public static class PanelExtensions
  15. {
  16. /// <summary>
  17. /// 禁用容器中的子控件
  18. /// </summary>
  19. /// <param name="panel"></param>
  20. /// <param name="ctrls">不禁用的子控件</param>
  21. /// <returns></returns>
  22. public static PanelControl DisabledChildWithout(this PanelControl panel, params Control[] ctrls)
  23. {
  24. var ctrl = panel.GetChildControls();
  25. foreach (var item in ctrl)
  26. {
  27. if (ctrls == null || !ctrls.Contains(item))
  28. item.Enabled = false;
  29. }
  30. return panel;
  31. }
  32. /// <summary>
  33. /// 启用容器中的子控件
  34. /// </summary>
  35. /// <param name="panel"></param>
  36. /// <returns></returns>
  37. public static PanelControl EnableChild(this PanelControl panel)
  38. {
  39. var ctrl = panel.GetChildControls();
  40. foreach (var item in ctrl)
  41. {
  42. item.Enabled = true;
  43. }
  44. return panel;
  45. }
  46. public static List<Control> GetChildControls(this PanelControl panel)
  47. {
  48. List<Control> list = new List<Control>();
  49. foreach (Control item in panel.Controls)
  50. {
  51. list.Add(item);
  52. list.AddRange(GetChildControls(item));
  53. }
  54. return list;
  55. }
  56. private static List<Control> GetChildControls(Control ctrl)
  57. {
  58. List<Control> list = new List<Control>();
  59. if (ctrl.Controls == null || ctrl.Controls.Count == 0) return list;
  60. foreach (Control item in ctrl.Controls)
  61. {
  62. list.Add(item);
  63. list.AddRange(GetChildControls(item));
  64. }
  65. return list;
  66. }
  67. }
  68. }