직접 그린 형태 테두리와 배경색의 점진적인 밝아짐(어두워짐)을 주로 소개합니다.
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 이벤트를 추가하여 마우스가 아이콘 위로 이동할 때 마우스가 손 모양으로 변경되도록 합니다.
rree5. 패널의 배경색이 점차 희미해지도록 설정합니다.
패널에 페인트 이벤트를 추가합니다.
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)를 참고해주세요!