2016-05-14 10 views
1

Ich bin nicht sicher, was hier passiert:anzeigen Text, der in einem Text auf einer Reihe hängt

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 

Es nehme „Approved“ zu zeigen, wenn der Wert des NETPAYTextBox größer als 20000 oder Show " Ausstehend“, wenn der Wert des NETPAYTextBox niedriger als 20000.

+0

zu entsprechen Wo Versuchst du, die Antwort zu zeigen? – Codexer

+0

Wahrscheinlich möchten Sie den Wert von AppstatusTextBox.Text nicht von ihm lesen – Steve

+0

Doing this: 'ans = AppstatusTextBox.Text' _ ** wird nicht ** _ automatisch den Text in der TextBox, nur weil Sie das' ans ändern variabel, wenn Sie das dachten. –

Antwort

4

Dies sollte den Trick tun. Es stellt sicher, dass Sie eine Integer haben und wenn ja, den Vergleich zu tun und stellen Sie den Text auf das Ergebnis je ...

Dim xnet As Integer = 0 

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

Aus irgendeinem Grund habe ich nie daran gedacht, eine TryParse-Methode mit einem Kurzschlussoperator zu verwenden. Scheint so offensichtlich, jetzt, wo ich es sehe. – Lopsided

+0

wow, danke! Das klappt auch! Perfekt. –

+0

@DorineMae Ihr Willkommen, Happy Coding! – Codexer

-5

Sie nicht den Text in einer ganzen Zahl konvertieren, die Sie vergleichen eine interger mit einem String jetzt ....

Machen NETPAYTextBox eine numericupdown

+0

Nein er/sie ist nicht. Beim Setzen der 'xnet' -Variable wird der String implizit (korrigiert mich, wenn ich den falschen Begriff hier verwende) in eine Ganzzahl konvertiert. –

+0

Ja, es ist ungültig, grundlegende vb.net 2015 Einstellung und Sie bekommen; Weitere Informationen: Die Konvertierung von der Zeichenfolge "sadfasd" in den Typ "Integer" ist nicht gültig. Aber hey, wenn Sie es alle besser wissen, suchen Sie es;) – Lectere

+0

Das ist, weil es Buchstaben enthält! Wenn Sie nur Zahlen eingeben, die 2147483647 nicht überschreiten, haben Sie kein Problem (solange Option Strict deaktiviert ist). Versuch es. –

0

Haben Sie Ihren Code wie dieser

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 

Sie möchten einen Wert gesetzt ans Bevor Sie es anzeigen.

Dadurch

xnet = NETPAYTextBox.Text 

Sie xnet stellen Sie den Text NETPAYTextBox

Aber

tun
NETPAYTextBox.text = xnet.to string 

Sie auf gleich den Text des Textfelds Einstellung xnet.