2

データグリッドビューの特定の列に画像を配置する必要がありますが、すべての行に配置する必要はありません。

If getExists(myTable, CInt(reader.GetValue(0)), dbConn) Then
  .Cells("myCol").Value = Image.FromFile("C:\myPath\myIco_16x16.ico")
Else
  .Cells("myCol").Value = "" ' error here
End If

このコードを使用すると、おそらく画像列に文字列を入れようとしているために、実行中にエラーが発生します。2番目に試すのは:

.Cells("myCol").Value = Nothing

これはエラーにはなりませんが、「エラー画像」の画像 (赤い X が付いたもの) をグリッドに配置します。

ファイルまたはリソースから「空白の画像」をロードせずに、データグリッドビューの画像列に画像(空白)を1つも配置しない方法はありますか?

4

3 に答える 3

3

過去にこれを行う必要があり、1 ピクセルの透明な PNG を使用しました。私のアプリケーションでは、18 個の画像列と 2000 行以下のセルの背景色でも問題なくパフォーマンスを発揮できました。

「Paint.Net」などの無料プログラムを使用して、1x1 ピクセルの透過 PNG をかなり簡単に作成できるはずです。

于 2012-12-16T03:26:22.917 に答える
1

ファイルから画像をロードするのではなく、一時的な空白のビットマップを作成してこれを割り当てることができます。

Friend Function BlankImage() As Image
    Try
        Dim oBM As New Bitmap(1, 1)
        oBM.SetPixel(0, 0, Color.Transparent)
        Return oBM
    Catch ex As Exception
        Return Nothing
    End Try

End Function
于 2014-09-04T15:08:37.453 に答える