C# 윈폼 Form(폼) 둥글게 타원으로 만드는 방법
1. 먼저 폼 한개 만들고 FormBorderStyle를 None으로 설정한다.
2. 클래스 파일 만들어서 다음과 같이 코딩한다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Monitor0._2.UI_Forms
{
class EllipseControl : Component
{
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
int nLeftRect,
int nTopRect,
int nRightRect,
int nBottomRect,
int nWidthEllipse,
int nHeightEllipse
);
private Control _cntrl;
private int _CornerRadius = 30;
public Control TargetControl
{
get { return _cntrl; }
set
{
_cntrl = value;
_cntrl.SizeChanged += (sender, eventArgs) =>
_cntrl.Region = Region.FromHrgn(CreateRoundRectRgn(0, 0, _cntrl.Width, _cntrl.Height, _CornerRadius, _CornerRadius));
}
}
public int CornerRadius
{
get { return _CornerRadius; }
set
{
_CornerRadius = value;
if(_cntrl != null)
_cntrl.Region = Region.FromHrgn(CreateRoundRectRgn(0, 0, _cntrl.Width, _cntrl.Height, _CornerRadius, _CornerRadius));
}
}
}
}
3. 그리고 ReBuild(다시빌드) 누르면 도구상자에 EllipseControl이 들어온다.
4. EllipseControl를 폼으로 드래그앤드롭한다.
5. ellipseControl1 속성에서 TargetControl에서 해당 폼을 지정하고 CornerRadius를 설정한다. 그럼 모서리가 둥글둥글해진다.
C# - Creating an Ellipse Tool in WinForm App
'기타 ETC > C#' 카테고리의 다른 글
C# 그라디언트 판넬 컨트롤 만들기 (0) | 2020.03.24 |
---|---|
C# DragControl 만들기 (0) | 2020.03.24 |
Form Drag (0) | 2020.03.19 |
C# 버튼에 다양한 아이콘 넣을수 있는 방법 (0) | 2020.03.19 |
c# 실시간 라인 차트(그래프) 만들기 (0) | 2020.02.18 |