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

+ Recent posts