2016-05-14 16 views
1

我不知道哪裏出了問題在這裏:取決於許多在TextBox顯示文本

Dim xapp As Integer = 20000 
Dim xnet As Integer 
Dim ans As String 

xnet = NETPAYTextBox.Text 
ans = AppstatusTextBox.Text 

If (xapp < xnet) Then 
    ans = "Approved" 
Else 
    ans = "Pending" 
End If 

它想顯示「已批准」如果NETPAYTextBox的值大於20000或表現出更大的「待」如果NETPAYTextBox的值低於20000

+0

凡你是否試圖顯示答案? – Codexer

+0

可能你想設置AppstatusTextBox.Text的值不從它讀取 – Steve

+0

這樣做:'ans = AppstatusTextBox.Text' _ **不會**自動更改文本框中的文本,只是因爲您修改了'ans'變量,如果你認爲如此。 –

回答

4

這應該可以做到。它可以確保你有一個Integer如果這樣做了比較,並設置根據結果的文字...

Dim xnet As Integer = 0 

    AppstatusTextBox.Text = CStr(If(Integer.TryParse(NETPAYTextBox.Text, xnet) AndAlso 20000 < xnet, "Approved", "Pending")) 
+0

出於某種原因,我從來沒有想過用短路操作符使用TryParse方法。看來如此明顯,現在我明白了。 – Lopsided

+0

哇,謝謝!這也適用!完美。 –

+0

@DorineMae歡迎您,快樂編碼! – Codexer

-5

不要你必須將文本轉換爲一個整數,你與現在比較字符串一個整數....

讓NETPAYTextBox一numericupdown

+0

不,他/她不是。當設置'xnet'變量時,字符串是隱含的(如果我在這裏使用了錯誤的術語,請糾正我)轉換爲整數。 –

+0

是的,它是無效的,基本vb.net 2015年的設置,你會得到;附加信息:從字符串「sadfasd」到「Integer」類型的轉換無效。但是,嘿,如果你們都知道的更好,那就去搜索一下;) – Lectere

+0

那是因爲它包含字母!如果您輸入的數字不超過2147483647,則不會有問題(只要選項嚴格關閉)。嘗試一下。 –

0

有你這樣的代碼

Dim xapp As Integer = 20000 
Dim xnet As Integer 
Dim ans As String 


If (xapp < xnet) Then 
    ans = "Approved" 
Else 
    ans = "Pending" 
End If 

NETPAYTextBox.Text = xnet.toString 
AppstatusTextBox.Text = ans 

你要設置的值ans在你顯示它之前。

這樣做

xnet = NETPAYTextBox.Text 

您設置xnet爲等於文本NETPAYTextBox

但是這樣做

NETPAYTextBox.text = xnet.to string 

您設置文本框的文本等於xnet.