0
在Visual Basic .NET Windows窗體應用程序中,我從原始EGA數據創建位圖對象並試圖在PictureBox控件中顯示它們。它可以很好地創建對象,因爲我使用立即窗口調用GetPixel來確定它。 SixteenColorBitmap
是我正在使用的庫中的一個類。PictureBox不顯示動態生成的位圖
Function TileImage(Tile As SixteenColorBitmap) As Bitmap
Dim b As New Bitmap(32, 32)
For y = 1 To 16
For x = 1 To 16
Dim t = Tile.Color(x - 1, y - 1)
Dim c As Color = Drawing.Color.FromArgb(RGB(t.Item1, t.Item2, t.Item3))
b.SetPixel((x - 1) * 2, (y - 1) * 2, c)
b.SetPixel((x - 1) * 2 + 1, (y - 1) * 2, c)
b.SetPixel((x - 1) * 2, (y - 1) * 2 + 1, c)
b.SetPixel((x - 1) * 2 + 1, (y - 1) * 2 + 1, c)
Next
Next
Return b
End Function
加載EGA圖形時,對每個圖塊調用這個圖形,並將結果存儲在列表中。當用戶選擇瓷磚,就應該將正確的區塊ID的是,名單,並將其分配給圖片框的Image
財產,像這樣:
TileBackground.Image = BackgroundTiles(SelTile(0))
(TileBackground
是一個圖片,BackgroundTiles
是名單GDI +位圖和SelTile
是選定圖塊的陣列。)當代碼運行時,我確信它正在執行,位圖被分配給屬性,但它不會顯示在表單上,即使我調用Invalidate
或 。
你試過'BackgroundTiles(SelTile(0)).Save()'而不是爲了調試而從光盤上查看生成的位圖?這可能會清除,如果它真的是picturebox功能失常。 – Jens