2017-08-12 86 views
-1

我知道這個問題已被多次論述,但我認爲這一次是不同的。在我的Vb程序中,我有一個複選框和一個圖像。當用戶點擊複選框時,可見圖像變得不可見,以此類推。問題是我編寫了代碼,但是當我編譯它時,沒有發生錯誤,但是當我運行它時,一個問題告訴我「對象引用未設置爲對象的實例」,說圖像返回Nothing。 的代碼非常簡單未將對象引用設置爲對象的實例

If (DisplayImageCheckBox.IsChecked) Then 
     NaturePhoto.Visibility = Visibility.Visible 

    Else 
     NaturePhoto.Visibility = Visibility.Hidden 


    End If 

的問題是在第2行奇怪的是,有關於否則線沒有問題。如果我刪除NaturePhoto.Visibility = Visibility.Visible問題沒有;而如果我刪除了Else的陳述,並且在問題依然存在的情況下離開了這條線。正如我所說,NaturePhoto是消失並出現的照片,而DisplayImageCheckBox是使複選框消失而不是圖像。你能幫我嗎?我不知道如何解決。

+0

我不認爲'NaturePhoto'對象已被初始化。 – OneFineDay

+0

如何初始化圖像?當我在屬性窗口中設置圖像的名字時,我沒有初始化過嗎? –

+0

@RobertoChiaiese什麼是圖像?它是一個PictureBox,你已經拖到你的表單上或者你在代碼中聲明瞭它嗎?例如'Dim NaturePhoto as Bitmap'或其他什麼? –

回答

-1

「未設置爲對象實例的對象引用」錯誤非常有名。這意味着您正在嘗試訪問未定義對象的屬性。

從例子在:Microsoft C# FAQ

你的情況將 不是這個明確的,因爲你要使用可以將變數 是一個類字段,參數或局部變量,曾經 實例但後來被設置爲空。鑑於foo是空, 下面的代碼將拋出一個NullReferenceException:

嘗試調試和找到其NaturePhoto或能見度對象爲null。

+0

當我嘗試調試時,VS告訴我Visibility.Visible被設置爲Visible,Visibility設置爲Collapsed並且NaturePhoto設置爲Nothing。我不明白我需要修改哪些內容(代碼或GUI) –

+0

好,那麼您必須使用「新」關鍵字初始化NaturePhoto。嘗試NaturePhoto = new NaturePhoto() – pushStack

+0

它取決於代碼:如果之前沒有設置NaturePhoto對象,則必須在If if語句之前將其初始化**。然後編譯並調試以查看它是否爲空。 – pushStack

相關問題