C# C/S下DataGrid根据数据库里的值(int型)显示ImageList里的图片
2006-08-02 17:12
615 查看
由于做项目需要写了一个显示图片的自定的DataGridColumn样式,抛砖引玉了
using System;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
namespace DataGridPictureBoxColumn
{
public class DataGridPictureBoxColumn : DataGridColumnStyle
{
private ImageList _showimagelist = null;
public ImageList ShowImageList
{
set
{
_showimagelist = value;
}
}
public DataGridPictureBoxColumn() : base()
{
}
protected override void Paint(Graphics g,
Rectangle bounds,
CurrencyManager source,
int rowNum)
{
Paint(g, bounds, source, rowNum, false);
}
protected override void Paint(
Graphics g,
Rectangle bounds,
CurrencyManager source,
int rowNum,
bool alignToRight)
{
Paint(
g,bounds,
source,
rowNum,
Brushes.Red,
Brushes.Blue,
alignToRight);
}
protected override void Paint(
Graphics g,
Rectangle bounds,
CurrencyManager source,
int rowNum,
Brush backBrush,
Brush foreBrush,
bool alignToRight)
{
int Index = (int)GetColumnValueAtRow(source, rowNum);
g.FillRectangle(new SolidBrush(Color.White),bounds);
g.DrawImage(this._showimagelist.Images[Index],bounds);
}
protected override void Abort(int rowNum)
{
Invalidate();
}
protected override bool Commit
(CurrencyManager dataSource, int rowNum)
{
Invalidate();
return true;
}
protected override void Edit(
CurrencyManager source,
int rowNum,
Rectangle bounds,
bool readOnly,
string instantText,
bool cellIsVisible)
{
return;
}
protected override Size GetPreferredSize(
Graphics g,
object value)
{
return new Size(20,20);
}
protected override int GetMinimumHeight()
{
return 20;
}
protected override int GetPreferredHeight(Graphics g,
object value)
{
return 20;
}
}
}
using System;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
namespace DataGridPictureBoxColumn
{
public class DataGridPictureBoxColumn : DataGridColumnStyle
{
private ImageList _showimagelist = null;
public ImageList ShowImageList
{
set
{
_showimagelist = value;
}
}
public DataGridPictureBoxColumn() : base()
{
}
protected override void Paint(Graphics g,
Rectangle bounds,
CurrencyManager source,
int rowNum)
{
Paint(g, bounds, source, rowNum, false);
}
protected override void Paint(
Graphics g,
Rectangle bounds,
CurrencyManager source,
int rowNum,
bool alignToRight)
{
Paint(
g,bounds,
source,
rowNum,
Brushes.Red,
Brushes.Blue,
alignToRight);
}
protected override void Paint(
Graphics g,
Rectangle bounds,
CurrencyManager source,
int rowNum,
Brush backBrush,
Brush foreBrush,
bool alignToRight)
{
int Index = (int)GetColumnValueAtRow(source, rowNum);
g.FillRectangle(new SolidBrush(Color.White),bounds);
g.DrawImage(this._showimagelist.Images[Index],bounds);
}
protected override void Abort(int rowNum)
{
Invalidate();
}
protected override bool Commit
(CurrencyManager dataSource, int rowNum)
{
Invalidate();
return true;
}
protected override void Edit(
CurrencyManager source,
int rowNum,
Rectangle bounds,
bool readOnly,
string instantText,
bool cellIsVisible)
{
return;
}
protected override Size GetPreferredSize(
Graphics g,
object value)
{
return new Size(20,20);
}
protected override int GetMinimumHeight()
{
return 20;
}
protected override int GetPreferredHeight(Graphics g,
object value)
{
return 20;
}
}
}
相关文章推荐
- C# WINFROM中threeview中imagelist图片有时候不显示透明的
- [Android]simplelistadapter 与数据库绑定显示list 并且根据数据库内容产生图片信息
- level-list根据setimagelevel和setlevel方法中给的int显示图片;和selector类似
- C# listview中显示imagelist中的图片
- 同一个ImageView根据xml文件来显示不同的图片--level-list
- 结合ashx来在DataGrid中显示从数据库中读出的图片
- C#保存图片到数据库,读取图片显示
- DataGrid显示图片(物理路径式和Stream流式)和添加图片到数据库
- 如何读取保存在数据库中的图片显示在DataGrid中
- C#读取数据库图片显示、缩小、更新
- 在数据库中处理image字段【把图片存储到数据库并显示出来】
- 存储图片到数据库的image字段中,并在Winform中显示图片
- C#代码怎样在Windows窗体中显示从数据库读出的图片
- c#存储图片到数据库读数据库显示图片实例
- 同一个ImageView显示不同的图片--->level-list
- 如何读取保存在数据库中的图片显示在DataGrid中
- C#将image中的显示的图片转换成二进制
- 如何把存储在数据库中的图片根据自己的需要的大小显示出来。【转】
- BinaryImage:直接显示以二进制形式存储在数据库中的图片
- ImageList显示图片时失真