2015-05-08 108 views
0

有人能幫我嗎?我試圖繪製圖像,我得到這個錯誤:爲什麼我在System.Drawing.dll中得到System.ArgumentException

An unhandled exception of type 'System.ArgumentException' occurred in System.Drawing.dll"

有以下功能:被點擊的按鈕之前

Dim x, y, xlatime, ylungime As Integer 
Dim myImage As Image 
Dim folder As String 

Sub PictureBox1_Paint(sender1 As Object, er As PaintEventArgs) 
    Dim r As New Rectangle(x, y, xlatime, ylungime) 
    er.Graphics.DrawImage(myImage, r) 
End Sub 

Private Function deseneaza(ByVal poza As String, ByRef x_perm As Integer, ByRef y_perm As Integer, ByRef lungime As Integer, ByRef latime As Integer) 
    myImage = Image.FromFile(poza) 
    x = x_perm 
    y = y_perm 
    xlatime = latime 
    ylungime = lungime 
    Refresh() 
    Return Nothing 
End Function 

Private Sub joaca_buton_Click(sender As Object, e As EventArgs) Handles joaca_buton.Click 
    Timer1.Stop() 
    nor.Hide() 
    nor_mic.Hide() 
    logo.Hide() 
    exit_buton.Hide() 
    joaca_buton.Hide() 
    continua_buton.Hide() 
    optiuni_buton.Hide() 
    BackgroundImage.Dispose() 
    deseneaza(folder + "\incarcare1.png", 0, 0, 729, 1008) 
End Sub 
+0

您確定圖片加載?你調試了你的工作嗎? – OneFineDay

+0

除非您告訴它您正在控制該事件,否則繪製事件會多次觸發 - 而且我看不到任何代碼。所以當你打開表單時,繪畫事件正在發射。 – OneFineDay

+1

如果你的函數沒有返回任何東西,它應該是一個子類。請發佈更完整的代碼,包括聲明。 –

回答

1

在PictureBox的Paint事件將被調用。在這種情況下,MyImage將是Nothing,因此在您嘗試繪製時會導致異常。更改油漆事件,包括檢查:

Sub PictureBox1_Paint(sender1 As Object, er As PaintEventArgs) 
    If myImage IsNot Nothing Then  
     Dim r As New Rectangle(x, y, xlatime, ylungime) 
     er.Graphics.DrawImage(myImage, r) 
    End If 
End Sub 

,並強制重繪,添加Picturebox1.Invalidate()Sub joaca_buton_Click末。

Private Sub joaca_buton_Click(sender As Object, e As EventArgs) Handles joaca_buton.Click 
    'The rest of the sub here 
    deseneaza(folder + "\incarcare1.png", 0, 0, 729, 1008) 
    PictureBox1.Invalidate() 
End Sub 
+0

嗯..我沒有一個PictureBox1,所以如何強制重繪沒有「PictureBox1.Invalidate()」? –

+0

@CătălinMuntean由於您在發佈的代碼中有一個'PictureBox1_Paint',我認爲這就是控件的調用對象。爲正在繪製圖像的控件調用'Invalidate'。如果異常仍然存在,請發佈有關代碼中導致它的確切位置的更多信息。 – Jens

+0

我稱之爲無效,但仍然沒有。我想繪製一個與表單大小一樣大的圖像。 「刷新()」導致它,但我找到了另一個做我想做的解決方案。謝謝你試圖幫助我,我真的很感激。 –

相關問題