ToggleCard.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. namespace Optimizer
  5. {
  6. public sealed partial class ToggleCard : UserControl
  7. {
  8. public event EventHandler ToggleClicked;
  9. SubForm _subForm;
  10. public ToggleCard()
  11. {
  12. InitializeComponent();
  13. this.DoubleBuffered = true;
  14. _subForm = new SubForm();
  15. this.IsAccessible = true;
  16. Label.IsAccessible = true;
  17. Toggle.IsAccessible = true;
  18. Panel.IsAccessible = true;
  19. this.AccessibleName = LabelText;
  20. Label.AccessibleName = LabelText;
  21. Toggle.AccessibleName = LabelText;
  22. Panel.AccessibleName = LabelText;
  23. }
  24. public string LabelText
  25. {
  26. get { return Label.Text; }
  27. set
  28. {
  29. Label.Text = value;
  30. this.AccessibleName = value;
  31. Label.AccessibleName = value;
  32. Toggle.AccessibleName = value;
  33. Panel.AccessibleName = LabelText;
  34. }
  35. }
  36. public bool ToggleChecked
  37. {
  38. get { return Toggle.Checked; }
  39. set { Toggle.Checked = value; }
  40. }
  41. private void Toggle_CheckedChanged(object sender, EventArgs e)
  42. {
  43. if (ToggleClicked != null) ToggleClicked(sender, e);
  44. }
  45. private void Label_MouseLeave(object sender, EventArgs e)
  46. {
  47. Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Regular);
  48. Label.ForeColor = Color.White;
  49. }
  50. private void Label_MouseEnter(object sender, EventArgs e)
  51. {
  52. Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Underline);
  53. Label.ForeColor = OptionsHelper.ForegroundColor;
  54. }
  55. private void Label_Click(object sender, EventArgs e)
  56. {
  57. if (Label.Tag == null) return;
  58. _subForm.SetTip(Label.Tag.ToString());
  59. _subForm.ShowDialog(this);
  60. }
  61. private void Label_MouseHover(object sender, EventArgs e)
  62. {
  63. Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Underline);
  64. Label.ForeColor = OptionsHelper.ForegroundColor;
  65. }
  66. }
  67. }