DOBON.NET DOBON.NETプログラミング掲示板過去ログ

dataGridView の1つのセルに複数のアイコン

環境/言語:[Windows 7/Vista MS2010 C# Winアプリ]
分類:[.NET]

お世話になります。

dataGridView の1つのセルに複数のアイコン(xxxx.gifなど)を表示させることが可能でしょうか?

可能なら、是非その方法を教えてください。

よろしくお願いします。

ウインドウズアプリです。
自己レスです。とりあえず下記の方法でアイコンを表示することができました。
ビットマップを必要なものだけつなげて1つとして表示しています。

改良点はあるようですがちょっとこれで頑張ってみます。

private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
Rectangle rect1 = new Rectangle(e.CellBounds.Location.X, e.CellBounds.Location.Y, 12 * 5, 11);

Bitmap bm = new Bitmap(55, 11);
using (Graphics g3 = Graphics.FromImage(bm))
{
g3.DrawImage(cellBackImage1, 0, 0);
g3.DrawImage(cellBackImage2, 11, 0);
g3.DrawImage(cellBackImage3, 22, 0);
g3.DrawImage(cellBackImage4, 33, 0);
g3.DrawImage(cellBackImage5, 44, 0);
}

pictureBox1.Image = bm;

e.Graphics.DrawImage(bm, rect1);

// 背景以外が描画されるようにする
DataGridViewPaintParts paintParts = e.PaintParts & ~backParts;
// セルを描画する
e.Paint(e.ClipBounds, paintParts);
■No30996に返信(hiroさんの記事)

> 改良点はあるようですがちょっとこれで頑張ってみます。

Bitmap bm = new Bitmap(55, 11)
への描画を挟む必要はないかと思います。
無駄なリソースを作成することになってしまいます。
直接e.Graphicsへの描画をした方が効率がよいのでは?

DOBON.NET | プログラミング道 | プログラミング掲示板