123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System.Drawing;
- using System.Windows.Forms;
- namespace Optimizer {
- public sealed class MoonSelect : ComboBox {
- private const int WM_PAINT = 0xF;
- private int buttonWidth = SystemInformation.HorizontalScrollBarArrowWidth;
- Color borderColor = Color.Blue;
- public Color BorderColor {
- get { return borderColor; }
- set { borderColor = value; Invalidate(); }
- }
- protected override void WndProc(ref Message m) {
- base.WndProc(ref m);
- if (m.Msg == WM_PAINT && DropDownStyle != ComboBoxStyle.Simple) {
- using (var g = Graphics.FromHwnd(Handle)) {
- var adjustMent = 0;
- if (FlatStyle == FlatStyle.Popup ||
- (FlatStyle == FlatStyle.Flat &&
- DropDownStyle == ComboBoxStyle.DropDownList))
- adjustMent = 1;
- var innerBorderWisth = 3;
- var innerBorderColor = BackColor;
- if (DropDownStyle == ComboBoxStyle.DropDownList &&
- (FlatStyle == FlatStyle.System || FlatStyle == FlatStyle.Standard))
- innerBorderColor = Color.FromArgb(0xCCCCCC);
- if (DropDownStyle == ComboBoxStyle.DropDownList && !Enabled)
- innerBorderColor = SystemColors.Control;
- if (DropDownStyle == ComboBoxStyle.DropDownList || Enabled == false) {
- using (var p = new Pen(innerBorderColor, innerBorderWisth)) {
- p.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
- g.DrawRectangle(p, 1, 1,
- Width - buttonWidth - adjustMent - 1, Height - 1);
- }
- }
- using (var p = new Pen(BorderColor)) {
- g.DrawRectangle(p, 0, 0, Width - 1, Height - 1);
- g.DrawLine(p, Width - buttonWidth - adjustMent,
- 0, Width - buttonWidth - adjustMent, Height);
- }
- }
- }
- }
- }
- }
|