先看看效果,如果感兴趣,继续往下看……
效果如下图所示:
DataGridView里没有Pragress列,但有Image列,有了它我们可以自己绘图来实现进度条。其实实现起来并不困难。
首先在实体类增加Image类型的属性,在get里绘制进度条图片:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;namespace DataGridViewProgress
{
public class UserInfo
{
public string UserName { get; set; }
public string Addr { get; set; }
public int Press { get; set; }//进度条图片属性
public Image PressImg
{
get
{
Bitmap bmp = new Bitmap(104, 30); //这里给104是为了左边和右边空出2个像素,剩余的100就是百分比的值
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White); //背景填白色
//g.FillRectangle(Brushes.Red, 2, 2, this.Press, 26); //普通效果
//填充渐变效果
g.FillRectangle(new LinearGradientBrush(new Point(30, 2), new Point(30, 30), Color.Black, Color.Gray), 2, 2, this.Press, 26);
return bmp;
}
}
}
}
然后在DataGridView里添加图片列并绑定DataPropertyName属性:
运行起来,大功告成!