NEWS

[C#] Hướng dẫn cách bo tròn winform with Radius

[C#] Hướng dẫn cách bo tròn winform with Radius
Đăng bởi: Thảo Meo - Lượt xem: 19765 10:46:52, 17/12/2020C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách bo tròn winform Radius border trong lập trình C#, Winform.

[C#] Border radius Winform

Dưới đây là hình ảnh Winform mình đã tạo border theo thông số Radius:

border_radius_winform_csharp

Để bo tròn Winform 4 góc như hình giao diện trên, đầu tiên các bạn tạo cho mình 1 class ElipseControl, chúng ta sẽ kế thừa từ Component

Class ElipseControl.cs c#:

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 ElipseToolDemo
{
    class ElipseControl : 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));
            }
        }
    }
}

Sau khi tạo xong, các bạn bấm build project thì bên thanh công cụ Toolbox sẽ hiển thị một control ElipseControl, các bạn kéo công cụ đó ra.

và cấu hình Target vào control nào các bạn muốn bo tròn.

Và Set thông số Radius cho Target control đó nhé.

border_radius_demo

Thanks for watching!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn cách bo tròn winform with Radius
Đăng bởi: Thảo Meo - Lượt xem: 19765 10:46:52, 17/12/2020C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.