DataGridView控件用法合集
DataGridView控件用法合集(十一)
56. DataGridView根据值不同在另一列中显示相应图片
[VB.NET]
''' <summary>
''' セルの値により、適当なアイコンを表示する
''' </summary>
Public Class DataGridViewErrorIconColumn
Inherits DataGridViewImageColumn
Public Sub New()
Me.CellTemplate = New DataGridViewErrorIconCell()
Me.ValueType = Me.CellTemplate.ValueType
End Sub
End Class
''' <summary>
''' セルの値により、適当なアイコンを表示する
''' </summary>
Public Class DataGridViewErrorIconCell
Inherits DataGridViewImageCell
Public Sub New()
Me.ValueType = GetType(Integer)
End Sub
Protected Overrides Function GetFormattedValue( _
ByVal value As Object,ByVal rowIndex As Integer,_
ByRef cellStyle As DataGridViewCellStyle,_
ByVal valueTypeConverter As System.ComponentModel.TypeConverter,_
ByVal formattedValueTypeConverter As System.ComponentModel.TypeConverter,_
ByVal context As DataGridViewDataErrorContexts) As Object
'値が0の時は情報、1の時は警告、2の時はエラーアイコンを表示する
Select Case CInt(value)
Case 1
Return SystemIcons.Information
Case 2
Return SystemIcons.Warning
Case 3
Return SystemIcons.Error
Case Else
Return Nothing
End Select
End Function
Public Overrides ReadOnly Property DefaultNewRowValue() As Object
Get
Return 0
End Get
End Property
End Class
[C#]
using System;
using System.ComponentModel;
using System.Windows.Forms;
/// <summary>
/// セルの値により、適当なアイコンを表示する
/// </summary>
public class DataGridViewErrorIconColumn : DataGridViewImageColumn
{
public DataGridViewErrorIconColumn()
{
this.CellTemplate = new DataGridViewErrorIconCell();
this.ValueType = this.CellTemplate.ValueType;
}
}
/// <summary>
/// セルの値により、適当なアイコンを表示する
/// </summary>
public class DataGridViewErrorIconCell : DataGridViewImageCell
{
public DataGridViewErrorIconCell()
{
this.ValueType = typeof(int);
}
protected override object GetFormattedValue(
object value,int rowIndex,
ref DataGridViewCellStyle cellStyle,
TypeConverter valueTypeConverter,
TypeConverter formattedValueTypeConverter,
DataGridViewDataErrorContexts context)
{
//値が0の時は情報、1の時は警告、2の時はエラーアイコンを表示する
switch ((int)value)
{
case 1:
return SystemIcons.Information;
case 2:
return SystemIcons.Warning;
case 3:
return SystemIcons.Error;
default:
return null;
}
}
public override object DefaultNewRowValue
{
get
{
return 0;
}
}
}
用法如下
[VB.NET]
'DataGridViewErrorIconColumnを作成
Dim iconColumn As New DataGridViewErrorIconColumn()
'Column1列(整数型)をバインドする
iconColumn.DataPropertyName = "Column1"
'DataGridViewに追加
DataGridView1.Columns.Add(iconColumn)
[C#]
//DataGridViewErrorIconColumnを作成
DataGridViewErrorIconColumn iconColumn =
new DataGridViewErrorIconColumn();
//Column1列(整数型)をバインドする
iconColumn.DataPropertyName = "Column1";
//DataGridViewに追加
DataGridView1.Columns.Add(iconColumn);
原文链接:https://www.f2er.com/vb/263218.html