RefereceForm.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. using Uestc.Auto6.Dso.Core;
  5. using Uni_Trend.MSO7000X.UserControls;
  6. namespace Uestc.Auto6.Dso.U2
  7. {
  8. public partial class ReferenceForm : FloatForm, IChnlView
  9. {
  10. private readonly ReferencePage _RefPage;
  11. public ReferenceForm()
  12. {
  13. InitializeComponent();
  14. _RefPage = new();
  15. this.Controls.Add(_RefPage);
  16. this.Controls.SetChildIndex(_RefPage, 0);
  17. _RefPage.BackColor = Color.Transparent;
  18. this.Size = new(_RefPage.Size.Width, _RefPage.Size.Height + HeadHeight);
  19. _RefPage.Dock = DockStyle.Fill;
  20. }
  21. protected new Boolean DesignMode
  22. {
  23. get
  24. {
  25. Boolean rtnflag = false;
  26. #if DEBUG
  27. rtnflag = DesignTimeHelper.InDesignMode(this);
  28. #endif
  29. return rtnflag;
  30. }
  31. }
  32. protected override CreateParams CreateParams
  33. {
  34. get
  35. {
  36. CreateParams cp = base.CreateParams;
  37. cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
  38. return cp;
  39. }
  40. }
  41. public ReferencePrsnt Presenter
  42. {
  43. get;
  44. set;
  45. }
  46. IBadge IView<IBadge>.Presenter
  47. {
  48. get => Presenter;
  49. set => Presenter = (ReferencePrsnt)value;
  50. }
  51. public void UpdateView(String propertyName)
  52. {
  53. if (InvokeRequired)
  54. BeginInvoke(new Action<String>(Update), new[] { propertyName });
  55. else
  56. Update(propertyName);
  57. }
  58. protected void Update(String propertyName)
  59. {
  60. if (String.IsNullOrEmpty(propertyName))
  61. {
  62. UpdateView();
  63. return;
  64. }
  65. _RefPage.UpdateView(propertyName);
  66. }
  67. protected void UpdateView()
  68. {
  69. if (!DesignMode)
  70. {
  71. this.TitleColor = Presenter.DrawColor;
  72. this.Title = Presenter.Name;
  73. }
  74. }
  75. public override void Refresh()
  76. {
  77. UpdateView();
  78. base.Refresh();
  79. }
  80. protected override void OnFormClosed(FormClosedEventArgs e)
  81. {
  82. Presenter.TryRemoveView(this);
  83. base.OnFormClosed(e);
  84. }
  85. protected override void OnLoad(EventArgs e)
  86. {
  87. base.OnLoad(e);
  88. Uni_Trend.MSO7000X.UserControls.Style.StyleManager.Instance.RegisterControl(this);
  89. UpdateView();
  90. }
  91. }
  92. }