我製作遊戲2048,但作爲額外的我想讓用戶讓他們改變廣場的高度,如果他們想。如果用戶點擊'btnSquare'按鈕,輸入框將顯示他們可以在哪裏填充正方形的高度。他們的輸入將顯示在'txtSquare'文本框中,該文本框已經被4填充。正方形的高度將變爲該文本框中的文本。現在,當我嘗試運行這個時,我得到一個System.Nullreference.Exception,但我不知道爲什麼自文本框最初填充了4.調試器說:對象引用未設置爲對象的實例。Systerm.Nullreference.Exeption VB.NET
而且我是Visual Basic的新手,所以我知道我的這種方法可能無法正常工作。如果有人能夠幫助我,告訴我用什麼方法來實現遊戲板的高度更換器,我會非常感激。 PS:我是荷蘭人,所以我對代碼中的不同語言感到抱歉。
Public Class Form1
Public square As Integer = (Convert.ToInt32(txtSquare.Text) - 1)
Dim rooster(square, square) As Label
Dim oldrooster(square, square) As Label
Public clickEnabled As Boolean = False
Public Sub btnOrde_Click(sender As Object, e As EventArgs) Handles btnSquare.Click
Dim message, title As String
Dim defaultValue As Integer
Dim userInput As Object
' Set prompt.
message = "Geef de hoogte van je spelbord in. (vb. 4 voor een 4x4 vierkant)"
' Set title.
title = "Initialisatie spelbord"
defaultValue = 4 ' Set default value.
' Display message, title, and default value.
userInput = InputBox(message, title, defaultValue)
' If user has clicked Cancel, set myValue to defaultValue
If userInput = "" Then userInput = defaultValue
If Not userInput > 1 Then userInput = defaultValue
square = (Convert.ToInt32(userInput) - 1)
txtSquare.Text = Convert.ToInt32(userInput)
End Sub
可能重複[什麼是NullReferenceException,我該如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix-它),如果你告訴我們它會發生什麼,這將有所幫助; [問] – Plutonix 2014-11-02 01:08:54
看[這個答案](http://stackoverflow.com/a/26164755/1070452); 'Public Square As Integer =(Convert.ToInt32(txtSquare.Text) - 1)'您在創建控件之前創建了一個控件 – Plutonix 2014-11-02 01:12:45
Hi Plutonix,感謝您的回答,我初始化了txtSquare.Text =「4」 =(Convert.ToInt32(txtSquare.Text) - 1)在Form1_load中。現在我沒有錯誤,但它只創建了1個tile而不是16個。如果我調試它,它說的square = 3的值,所以我不知道它爲什麼只創建1個tile,你可能知道爲什麼?謝謝!! – Ayk96 2014-11-02 02:00:44