나만의 컨트롤 만들기 1탄! Round Button
※ 모서리를 지정 값 만큼 둥글게 만들어서 path 를 반환 하는 함수
private GraphicsPath CreateRoundRectPath(int x, int y, int width, int height, int cornerRadius)
{
GraphicsPath path = new GraphicsPath();
if (cornerRadius == 0)
{
path.AddRectangle(new Rectangle(x, y, width, height));
}
else
{
path.AddArc(x, y, cornerRadius, cornerRadius, 180, 90); // 왼쪽 상단 모서리
path.AddArc(x + width - cornerRadius, y, cornerRadius, cornerRadius, 270, 90);// 오른쪽 상단 모서리
path.AddArc(x + width - cornerRadius, y + height - cornerRadius, cornerRadius, cornerRadius, 0, 90);// 오른쪽 하단 모서리
path.AddArc(x, y + height - cornerRadius, cornerRadius, cornerRadius, 90, 90);// 왼쪽 하단 모서리
}
path.CloseFigure();
return path;
}
※ 컨트롤 제작시 기본 파라미터
public UserControl1()
{
InitializeComponent();
// Set Optimized Double Buffer to reduce flickering
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
// Redraw when resized
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.Resize += (s1, e1) => { this.Invalidate(); };
}
영상의 내용을 외울 필요는 없습니다. 어떤 경우에 사용을 했구나 하는 점만 기억하면 좋겠습니다
이 글은 최초 : http://tindevil.com/?p=638 에서 배포 되었습니다
반응형
'SIMPLE C# > 기초' 카테고리의 다른 글
[SIMPLE C#] C# Input box 만들기 (0) | 2023.04.25 |
---|---|
[SIMPLE C#] Excel Read/Write Sample (0) | 2020.09.08 |
[SIMPLE C#] 단축키 설정 하기 (0) | 2020.03.16 |
[SIMPLE C#] 기초편 13.이벤트에 대한 짧은... (0) | 2018.12.23 |
[SIMPLE C#] 기초편 9.메세지 박스 표시(MessageBox) (0) | 2018.12.07 |