MoonCheckList.cs 972 B

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