PanelScrollHelper.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows.Forms;
  7. namespace WCS_Client.From
  8. {
  9. public class PanelScrollHelper
  10. {
  11. /// <summary>
  12. /// 初始化Panel
  13. /// </summary>
  14. /// <param name="panel"></param>
  15. public static void InitializePanelScroll(Panel panel)
  16. {
  17. panel.Click += (obj, arg) => { panel.Select(); };
  18. InitializePanelScroll(panel, panel);
  19. return;
  20. }
  21. /// <summary>
  22. /// 递归初始化Panel内部各容器和控件
  23. /// </summary>
  24. /// <param name="container"></param>
  25. /// <param name="panelRoot"></param>
  26. private static void InitializePanelScroll(Control container, Control panelRoot)
  27. {
  28. foreach (Control control in container.Controls)
  29. {
  30. if (control is Panel || control is GroupBox || control is SplitContainer ||
  31. control is TabControl || control is UserControl)
  32. {
  33. control.Click += (obj, arg) => { panelRoot.Select(); };
  34. InitializePanelScroll(control, panelRoot);
  35. }
  36. else if (control is Label)
  37. {
  38. control.Click += (obj, arg) => { panelRoot.Select(); };
  39. }
  40. }
  41. }
  42. }
  43. }