MoonCheckList.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System.Drawing;
  2. using System.Windows.Forms;
  3. namespace Optimizer
  4. {
  5. public sealed class MoonCheckList : CheckedListBox
  6. {
  7. public MoonCheckList()
  8. {
  9. DoubleBuffered = true;
  10. }
  11. protected override void OnDrawItem(DrawItemEventArgs e)
  12. {
  13. Color foreColor = Color.White;
  14. Color accentColor = OptionsHelper.ForegroundColor;
  15. if (this.Items.Count > 0)
  16. {
  17. if (e.Index >= 0)
  18. {
  19. foreColor = GetItemChecked(e.Index) ? accentColor : foreColor;
  20. }
  21. else
  22. {
  23. foreColor = e.ForeColor;
  24. }
  25. }
  26. var tweakedEventArgs = new DrawItemEventArgs(
  27. e.Graphics,
  28. e.Font,
  29. e.Bounds,
  30. e.Index,
  31. e.State,
  32. foreColor,
  33. e.BackColor);
  34. base.OnDrawItem(tweakedEventArgs);
  35. }
  36. }
  37. }