| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | using System.Drawing;using System.Windows.Forms;namespace Optimizer{    public sealed class MoonList : ListBox    {        public MoonList()        {            this.DrawMode = DrawMode.OwnerDrawVariable;            this.BorderStyle = BorderStyle.None;            this.MeasureItem += MoonListBox_MeasureItem;            this.DrawItem += MoonListBox_DrawItem;        }        private void MoonListBox_DrawItem(object sender, DrawItemEventArgs e)        {            if (e.Index < 0) return;            if (this.Items.Count <= 0) return;            e.DrawBackground();            Brush myBrush = new SolidBrush(Color.White);            if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)            {                e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(50, 50, 50)), e.Bounds);            }            else            {                e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(20, 20, 20)), e.Bounds);            }            e.Graphics.DrawString(this.Items[e.Index].ToString(), this.Font, myBrush, e.Bounds);            e.DrawFocusRectangle();        }        private void MoonListBox_MeasureItem(object sender, MeasureItemEventArgs e)        {            e.ItemHeight = this.Font.Height;        }    }}
 |