>  기사  >  백엔드 개발  >  0에서 자율 학습 C#01 – 자체 그린 양식 테두리

0에서 자율 학습 C#01 – 자체 그린 양식 테두리

黄舟
黄舟원래의
2017-02-04 10:29:052444검색

직접 그린 형태 테두리와 배경색의 점진적인 밝아짐(어두워짐)을 주로 소개합니다.

1. 먼저 양식을 테두리 없는 모드로 설정하세요.

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

양식을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 FormBorderStyler를 찾아 없음으로 설정할 수도 있습니다. 이때 폼 오른쪽 상단의 최소화, 최대화, 닫기 버튼이 사라지고, 폼을 마우스로 드래그하는 기능도 4단계에서 추가됩니다.

2. 테두리 그리기

현재 프로젝트를 선택하고 마우스 오른쪽 버튼을 클릭한 후 구성 요소를 추가하고 구성 요소 클래스 Component1이 Panel 클래스를 상속하도록 한 다음 OnPaint(PaintEventArgs e)를 재정의하여 그립니다. 테두리 색상. 솔루션을 생성하면 구성요소가 구성요소 열 아래의 도구 상자에 자동으로 추가됩니다. 클래스 코드는 다음과 같습니다.

public partial class Component1 : Panel
    {        public Component1()
        {
            InitializeComponent();
        }        public Component1(IContainer container)
        {
            container.Add(this);

            InitializeComponent();
        }        protected override void OnPaint(PaintEventArgs e)
        {
            ControlPaint.DrawBorder(e.Graphics,                          this.ClientRectangle,
                          Color.FromArgb(00,59,96),                          2,
                          ButtonBorderStyle.Solid,
                          Color.FromArgb(00,59,96),                          2,
                          ButtonBorderStyle.Solid,
                          Color.FromArgb(00,59,96),                          2,
                          ButtonBorderStyle.Solid,
                          Color.FromArgb(00,59,96),                          2,
                          ButtonBorderStyle.Solid);            base.OnPaint(e);
        }
    }

Color.FromArgb(00,59,96)는 테두리 색상을 설정하고, 2는 테두리 크기를 설정합니다.
참고: 색상을 보기 좋게 만들기 위해 어떤 RGB 값을 설정해야 할지 모르는 경우. 온라인에서 화면 색상 선택기를 다운로드하여 좋아 보인다고 생각하는 색상의 RBG 값을 읽을 수 있습니다.

3. 테두리를 추가합니다.

양식에 Component1 구성 요소를 추가하고 Dock 속성을 Fill로 설정합니다. 그런 다음 Padding 속성을 2, 2, 2, 2(테두리 크기에 해당)로 설정합니다. 코드는 다음과 같습니다.

this.component11.Dock = System.Windows.Forms.DockStyle.Fill;
this.component11.Padding = new System.Windows.Forms.Padding(2);

4. 폼 닫기, 최소화, 마우스 드래그 기능 추가

폼 컴포넌트 this.Component11에 Panel을 추가하고 설정합니다. 해당 Dock 속성은 Top이고 사용자 정의 배경색은 0, 102, 171이고 전경색은 Transparent입니다.

this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(102)))), ((int)(((byte)(171)))));
this.panel1.ForeColor = System.Drawing.Color.Transparent;


그런 다음 패널에 두 개의 레이블을 추가하고 텍스트를 최소화 및 최대화 아이콘에 대해 각각 __ 및 X로 설정합니다. 글꼴 설정은 Microsoft YaHei, Bold 및 Small 5입니다. 마지막으로 MouseDown 및 MouseMove 이벤트를 패널에 추가합니다. 레이블에 Click 이벤트를 추가하고 MouseEnter 및 MouseLeave 이벤트를 추가하여 마우스가 아이콘 위로 이동할 때 마우스가 손 모양으로 변경되도록 합니다.

rree

5. 패널의 배경색이 점차 희미해지도록 설정합니다.

패널에 페인트 이벤트를 추가합니다.

Point mouseOffSet;private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            mouseOffSet = new Point(-e.X, -e.Y);
        }private void panel1_MouseMove(object sender, MouseEventArgs e)
        {            if (e.Button == MouseButtons.Left)
            {
                Point mousePosition = Control.MousePosition;
                mousePosition.Offset(mouseOffSet.X, mouseOffSet.Y);
                Location = mousePosition;
            }
        }private void labelMinimize_Click(object sender, EventArgs e)
        {            this.WindowState = FormWindowState.Minimized;
        }private void labelClose_Click(object sender, EventArgs e)
        {            this.Close();            this.Dispose();
            Application.Exit();
        }private void labelMinimize_MouseEnter(object sender, EventArgs e)
        {            this.Cursor = Cursors.Hand;
        }private void labelMinimize_MouseLeave(object sender, EventArgs e)
        {            this.Cursor = Cursors.Default;
        }private void labelClose_MouseEnter(object sender, EventArgs e)
        {            this.Cursor = Cursors.Hand;
        }private void labelClose_MouseLeave(object sender, EventArgs e)
        {            this.Cursor = Cursors.Default;
        }

위 내용은 0-self-draw form border의 C#01 자습 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.