[英]Why can't I code a button using the variable I declared for it but I can use the button without declaring any variable in Visual Basic?
我正在使用 Visual Basic(一個 Windows 窗體應用程序)開發一個項目。 我創建了一個按鈕(我稱它為 button0),在嘗試為它處理點擊事件時,我為它聲明了一個變量,如下所示:
Public Class Project
Dim txtAnswer As String
Public Sub button0_Click(sender As Object, e As EventArgs) Handles button0.Click
txtAnswer = answerBox.Text
If txtAnswer.Length = 0 Then
txtAnswer = "0"
End If
End Sub
End Class
但是,每當我單擊按鈕時,文本框都不會輸出“0”。 但是,當我嘗試這樣做時,它確實:
Public Class Project
Public Sub button0_Click(sender As Object, e As EventArgs) Handles button0.Click
If answerBox.Text.Length = 0 Then
answerBox.Text= "0"
End If
End Sub
End Class
每當我聲明一個變量時,它都不起作用,但是當我不聲明時,它確實起作用。 我究竟做錯了什么?
雖然 David 和 Bryant1003 有正確的答案,但最終的代碼有點繞。 為了更嚴格的編碼:
Public Class Project
Public Sub button0_Click(sender As Object, e As EventArgs) Handles button0.Click
answerBox.Text = if(answerBox.Text.Length = 0, "0", answerBox.Text)
End Sub
End Class
局部變量僅在前面的示例中用作臨時持有者。 If
語句在更高的.Net
版本中有效,而在VBA
無效。 在這種情況下,使用IIf
也是安全的。
當然,如果你對answerBox.Text做進一步的操作,你可以考慮賦值給一個臨時變量。 但是否需要這取決於您想要做什么。
txtAnswer
和answerBox.Text
並沒有像您認為的那樣相互鏡像。
在您的第一個示例中,您正在設置變量以將值存儲在文本框中。 然后,如果字符串的長度為 0,則將其設置為存儲“0”。 這不會將answerBox.Text
也設置為“0”。
而在您的第二個示例中,您正在更新文本框以顯示“0”,而不是未連接的變量。
如果你想在你的第一個例子中使用一個變量,你需要做
Public Class Project
Dim txtAnswer As String
Public Sub button0_Click(sender As Object, e As EventArgs) Handles button0.Click
txtAnswer = answerBox.Text
If txtAnswer.Length = 0 Then
txtAnswer = "0"
End If
answerBox.Text = txtAnswer
End Sub
End Class
您可以期待TextBox.Text
屬性自動更新,因為您更新了一個變量。 您需要告訴它使用變量中的值。
問題是您沒有將值分配回“answerBox”。
該變量填充(讀取:復制)到子文件第一行的 txtAnswer 中。 復制后,您需要在完成處理后將字符串放回文本框。 請參閱下面添加行的代碼;
Public Class Project
Dim txtAnswer As String
Public Sub button0_Click(sender As Object, e As EventArgs) Handles button0.Click
txtAnswer = answerBox.Text
If txtAnswer.Length = 0 Then
txtAnswer = "0"
End If
' The below line puts the value from the variable txtAnswer back into the textbox
answerBox.Text = txtAnswer
End Sub
End Class
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.