2016年4月2日土曜日

DataGridViewの列に画像を表示する方法

DataGridViewの列に画像を表示する方法
VB.NET
Dim column As New DataGridViewImageColumn()
column.Name = "gazou"
column.ValuesAreIcons = False
column.Image = New Bitmap("C:\img001.gif")
column.ImageLayout = DataGridViewImageCellLayout.Zoom
column.Description = "image"
dgv1.Columns.Add(column)
dgv1("gazou
", 0).Value = New Bitmap("C:\img002.gif") '
C#
DataGridViewImageColumn column = new DataGridViewImageColumn();
column.Name = "gazou";
column.ValuesAreIcons = false;
column.Image = new Bitmap("C:\\img001.gif");
column.ImageLayout = DataGridViewImageCellLayout.Zoom;
column.Description = "image";
dgv1.Columns.Add(column);
dgv1["gazou
", 0].Value = new Bitmap("C:\\img002.gif");
セルに「X」が表示されないようにする方法
VB.NET
Dim imageColumn As DataGridViewImageColumn = _
CType(dgv1.Columns("Image"), DataGridViewImageColumn)
imageColumn.DefaultCellStyle.NullValue = Nothing
C#
DataGridViewImageColumn imageColumn =
(DataGridViewImageColumn)dgv1.Columns["Image"];
imageColumn.DefaultCellStyle.NullValue = null;
セルの値を任意で変更しセル値に合致した画像を表示する方法
VB.NET
Private image1 As New Bitmap("C:\img001.gif")
Private image2 As New Bitmap("C:\img002.gif")

Private Sub dgv1_CellFormatting(ByVal sender As Object, _
ByVal e As DataGridViewCellFormattingEventArgs) _
Handles dgv1.CellFormatting
Dim dgv As DataGridView = CType(sender, DataGridView)
If dgv.Columns(e.ColumnIndex).Name = "Image" AndAlso _
e.RowIndex >= 0 AndAlso _
TypeOf (dgv("Column1", e.RowIndex).Value) Is Integer Then
Select Case CInt(dgv("Column1", e.RowIndex).Value)
Case 1
e.Value = Me.image1
e.FormattingApplied = True
Case
2
e.Value = Me.image2
e.FormattingApplied = True
End Select
End If
End Sub
C#
private Bitmap image1 = new Bitmap("C:\\img001.gif");
private Bitmap image2 = new Bitmap("C:\\img002.gif");

private void dgv1_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (dgv.Columns[e.ColumnIndex].Name == "Image" &&
e.RowIndex >= 0 &&
dgv["Column1", e.RowIndex].Value is int)
{
switch ((int)dgv["Column1", e.RowIndex].Value)
{
case 1:
e.Value = this.image1;
e.FormattingApplied = true;
break;
case 2:
e.Value = this.image2;
e.FormattingApplied = true;
break;
}
}
}