DataGridView にいくつかのメッセージとその方向を表示するアプリケーションを作成しています。一部の列のコンテンツを写真に置き換えたいと思います。たとえば、着信を表す番号 0 を緑色の矢印 (いくつかの .jpg 画像) に置き換えたいと思います。
これを達成する方法を知っている人はいますか?
ありがとう!
DataGridView にいくつかのメッセージとその方向を表示するアプリケーションを作成しています。一部の列のコンテンツを写真に置き換えたいと思います。たとえば、着信を表す番号 0 を緑色の矢印 (いくつかの .jpg 画像) に置き換えたいと思います。
これを達成する方法を知っている人はいますか?
ありがとう!
画像をリソース ファイルに BMP ファイルとして保存しました。次に、DataGridView で CellFormatting イベントを次のように処理します。
private void messageInfoDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
// Is this the correct column? (It's actually a DataGridViewImageColumn)
if (messageInfoDataGridView.Columns[e.ColumnIndex] == messageSeverityDataGridViewTextBoxColumn)
{
// Get the row we're formatting
DataGridViewRow row = messageInfoDataGridView.Rows[e.RowIndex];
// Get the enum from the row.
MessageSeverity severity = ((MessageInfo)row.DataBoundItem).MessageSeverity;
Bitmap cellValueImage;
// Map the enumerated type to an image...
// SeverityImageMap is a Dictionary<MessageSeverity,Bitmap>.
if (ReferenceTables.SeverityImageMap.ContainsKey(severity))
cellValueImage = ReferenceTables.SeverityImageMap[severity];
else
cellValueImage = Resources.NoAction;
// Set the event args.
e.Value = cellValueImage;
e.FormattingApplied = true;
}
}
カスタム datagridviewCell datagridviewColumn および/または dataGridViewEditingControl の作成を見てください。
GridViews には、データ バインド フィールドではなく、イメージ フィールドを使用する機能があります。これはうまくいくように思えます。