2016-05-26 27 views
2

PictureをDataGridViewにロードしようとしていますが、すべてのセル表示が "System Drawn Bitmap"ですか?DataGridViewイメージは単に "System.Drawing.Bitmap"を表示します

DataGridPhoto.Columns.Clear() 
    DataGridPhoto.Columns.Add("Name", "Name") 
    DataGridPhoto.Columns.Add("Form", "Form") 
    DataGridPhoto.Columns.Add("Admision", "Addmision") 
    DataGridPhoto.Columns.Add("Photo", "Photo") 

    DataGridPhoto.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells 
    DataGridPhoto.Columns(0).DefaultCellStyle.WrapMode = DataGridViewTriState.True 
    DataGridPhoto.Columns(1).DefaultCellStyle.WrapMode = DataGridViewTriState.True 
    DataGridPhoto.Columns(2).DefaultCellStyle.WrapMode = DataGridViewTriState.True 
    DataGridPhoto.Columns(3).DefaultCellStyle.WrapMode = DataGridViewTriState.True 
    DataGridPhoto.Columns(0).Width = 150 
    DataGridPhoto.Columns(1).Width = 50 
    DataGridPhoto.Columns(2).Width = 50 
    DataGridPhoto.Columns(3).Width = 100 

    butPrint.Enabled = True 
    For nLoop = 1 To NoOfLabels 
     Dim n As Integer = DataGridPhoto.Rows.Add() 
     DataGridPhoto.Rows(n).Cells("Name").Value = PrnStudentDetails(nLoop, 1) + " " + PrnStudentDetails(nLoop, 2) 

     DataGridPhoto.Rows(n).Cells("Form").Value = PrnStudentDetails(nLoop, 3) 
     DataGridPhoto.Rows(n).Cells("Admision").Value = PrnStudentDetails(nLoop, 4) 
     Dim cPictureFilename As String 
     cPictureFilename = AppPath & "\Photographs\" & PrnStudentDetails(nLoop, 4) & ".jpg" 
     If File.Exists(cPictureFilename) Then 
      DataGridPhoto.Rows(n).Cells("Photo").Value = Image.FromFile(cPictureFilename) 
     End If 

    Next 

私はそれが絵だセルを指示する必要が推測しているが、これを行う方法を見つけることができません。

よろしく グラハム

答えて

3

DGVカラム(DataGridViewComboBoxColumnDataGridViewCheckBoxColumnなど)のいくつかの種類があります。あなたのコードは画像を表示することができないデフォルトのDataGridViewTextBoxColumnを追加しています。

Dim dc As New DataGridViewImageColumn() With {.HeaderText = "Photo", .Name = "Photo"} 
dgv2.Columns.Add(dc) 

dgv2.Rows.Add(1) 
dgv2.Rows(0).Cells(0).Value = Image.FromFile("C:\Temp\London.jpg") 

または:

dgv2.Columns.Add(New DataGridViewImageColumn() With {.HeaderText = "Photo", 
                .Name = "Photo"}) 
... 

また、自動的に/すべての画像をリサイズするImageLayoutプロパティを設定することもできます。完全に異なる列レイアウトを定義しない限り、列をクリアする理由はわかりません。古いデータを削除するには、行をクリアするだけです。

+0

私はピクチャ列として列を定義しなければならないことを知っていましたが、私が試したすべてが失敗し、機能しませんでした。助けてくれてありがとう。私はデータグリッドのやり方を示したので、列をクリアし、グリッドを一からやり直すだけです。行を削除するだけでは決して考えていない! –

関連する問題