달력

12025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
반응형


사용자 지정 컨트롤을 넣고


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class LineComboBox : ComboBox
    {
        public LineComboBox()
        {
            InitializeComponent();
 
            this.DropDownStyle = ComboBoxStyle.DropDownList;
            this.DrawMode = DrawMode.OwnerDrawFixed;
        }
 
        protected override void OnDrawItem(DrawItemEventArgs e)
        {
            if(e.Index < 0return;
            int startX = e.Bounds.Left + 5;
            int startY = (e.Bounds.Y + e.Bounds.Height / 2);
            int endX   = e.Bounds.Right - 5;
            int endY   = (e.Bounds.Y + e.Bounds.Height / 2);
            
            using (Pen p = new Pen(Color.Blue, (Int32)this.Items[e.Index]))
            {
                e.Graphics.DrawLine(p, new Point(startX, startY)
                                     , new Point(endX, endY));
            }
            
            base.OnDrawItem(e);
        }
 
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);
        }
    }
}
 
cs


콤보박스를 상속받아서 코딩




이제 윈폼디자인 화면에서 컴파일을 하면 LineComboBox라는 컨트롤이 생성된다.



마지막으로 필요한 선두께를 넣어주면 끝~


Posted by 유령회사
|