澳门赌场

法式开辟 > C# > Winform > 注释

C# 画 Winform Panel边框的两种方式(ControlPaint.DrawBorder,虚线、色彩和款式)

亮术网 2019-02-03 本网首创

在 Web 开辟中,普通用 div 规划,而在 Winform 中,Panel控件就像 div 一样,也是用来规划界面。Winform 中的控件默许边框都不是非常雅观,若是想设想标致的界面,能够重绘控件的边框,凡是重绘得比拟多的是 Panel 的边框,以是文章将以重绘 Panel边框为例申明重绘Winform控件边框的方式。

在 C# 中,重绘 Winform Panel边框,既能够笼盖本来的边框,也能够保留再画出一条边框组成高低结果。重绘所用的类和方式为 ControlPaint.DrawBorder,有两种重绘方式,上面别离先容。

 

一、Winform Panel边框方式一:每边能设置差别的色彩、宽度和款式

1、拖一个 Panel控件到主窗体中,坚持默许称号 panel1,BorderStyle 挑选 Fixed3D。

2、双击 Panel1,翻开背景代码文件,在 panel1_Paint(object sender, PaintEventArgs e) 方式中增加以下代码:

private void panel1_Paint(object sender, PaintEventArgs e)
  {
    ControlPaint.DrawBorder(e.Graphics, panel1.ClientRectangle,
    Color.White, 1, ButtonBorderStyle.Solid, //左侧
    Color.White, 1, ButtonBorderStyle.Solid, //上边
    Color.DimGray, 1, ButtonBorderStyle.Solid, //右侧
    Color.DimGray, 1, ButtonBorderStyle.Solid);//底边
  }

每边共有三个参数,别离为:边框色彩、宽度和款式;若是把 1 改成 0,则笼盖本来的边框,不然色彩搭配适当将呈现高低边框结果,示例运转结果如图1所示:

C# Winform边框(ControlPaint.DrawBorder)

图1

若是 BorderStyle 挑选 None,则又是别的一种结果(边框内崛起)。

 

 

二、Winform Panel边框方式二:每边款式一样

步骤跟方式一一样,只是在 panel1_Paint(object sender, PaintEventArgs e) 方式中增加以下代码:

private void panel1_Paint(object sender, PaintEventArgs e)
  {
    ControlPaint.DrawBorder(e.Graphics, ClientRectangle, Color.Ivory, ButtonBorderStyle.Solid);
  }

每边都设置为统一气概,即不异的色彩、宽度和款式。

 

 

三、Winform Panel 画虚线边框,并设置边框色彩和宽度

在画 Panel 虚线边框前,须要把它的边框款式 BorderStyle 设置为 None。

1、方式一

private void Panel1_Paint(object sender, PaintEventArgs e)
  {
    ControlPaint.DrawBorder(e.Graphics, panel1.ClientRectangle,
      Color.Black, 1, ButtonBorderStyle.Dotted, //左侧
      Color.Black, 1, ButtonBorderStyle.Dotted, //上边
      Color.Black, 1, ButtonBorderStyle.Dotted, //右侧
      Color.Black, 1, ButtonBorderStyle.Dotted);//底边

}

代码中,1 表现虚线的宽度,还能够设置为 2、3、……;Color.Black 表现把虚线设置为玄色;Dotted 表现虚线款式,还能够设置为 Dashed。结果如图2所示:

Winform Panel 画虚线边框,并设置边框色彩和宽度

图2

 

2、方式二

private void Panel1_Paint(object sender, PaintEventArgs e)
  {
    Panel pan = (Panel)sender;
    float width = (float)4.0;
    Pen pen = new Pen(SystemColors.ControlDark, width);
    pen.DashStyle = DashStyle.Dot;
    e.Graphics.DrawLine(pen, 0, 0, 0, pan.Height - 0);
    e.Graphics.DrawLine(pen, 0, 0, pan.Width - 0, 0);
    e.Graphics.DrawLine(pen, pan.Width - 1, pan.Height - 1, 0, pan.Height - 1);
    e.Graphics.DrawLine(pen, pan.Width - 1, pan.Height - 1, pan.Width - 1, 0);
}

代码中,变量 width 为要画虚线的宽度,它的值为 4;SystemColors.ControlDark 表现三维元素的暗影色彩;Dot 表现虚线款式,以后设置的结果如图3所示:

Winform Panel 用 Pen 画虚线边框

图3

 

线条目式(DashStyle)共有六种,别离为:

Solid:指实线边框。

Dash:指定包罗短划线的行。

DashDot:指定包罗反复的点划线图案的行。

DashDotDot:指定包罗反复的短划线-点点图案的行。

Dot:指定由点组成的行。

Custom:指定用户界说自界说的短划线款式。

 

设置边框色彩:

Panel pan = (Panel)sender;
  float width = (float)4.0;
   Color color = Color.Green;
  Pen pen = new Pen(color, width);

 

四、Winform Panel 款式设置

在 Winform 中,Panel 边框款式有三种,别离为 None、FixedSingle 和 Fixed3D,None 表现不设置边框,FixedSingle 表现单线边框,Fixed3D 表现三维边框。设置它们的方式有两种,一种为在属性窗口中设置,另一种用代码设置,方式以下:

1、方式一。右键 Panel,而后挑选“属性”,翻开“属性”窗口,找到 BorderStyle,挑选一款式便可。

 

2、方式二。双击 Panel,把以下代码

this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;

复制到

private void Panel1_Paint(object sender, PaintEventArgs e)
  {
  }