0

DataGridView にいくつかのメッセージとその方向を表示するアプリケーションを作成しています。一部の列のコンテンツを写真に置き換えたいと思います。たとえば、着信を表す番号 0 を緑色の矢印 (いくつかの .jpg 画像) に置き換えたいと思います。

これを達成する方法を知っている人はいますか?

ありがとう!

4

3 に答える 3

1

画像をリソース ファイルに 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;
        }
    }
于 2009-05-02T00:30:58.203 に答える
0

カスタム datagridviewCell datagridviewColumn および/または dataGridViewEditingControl の作成を見てください。

于 2008-11-04T15:28:56.400 に答える
0

GridViews には、データ バインド フィールドではなく、イメージ フィールドを使用する機能があります。これはうまくいくように思えます。

于 2008-11-04T15:24:50.777 に答える