2016-05-14 3 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 

Это, предполагают, чтобы показать «Approved», если значение NETPAYTextBox больше, чем 20000 или шоу " в ожидании», если значение NETPAYTextBox ниже, чем 20000.

+0

Где вы пытаетесь показать ответ? – Codexer

+0

Возможно, вы хотите установить значение AppstatusTextBox.Text, не считая из него – Steve

+0

Выполнение этого: 'ans = AppstatusTextBox.Text' _ ** не будет ** _ автоматически изменять текст в TextBox только потому, что вы изменяете' 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

вы не должны преобразовать текст в целое число, вы сравниваете interger со строкой теперь ....

Сделать NETPAYTextBox numericupdown

+0

Нет, он/она не является. При установке переменной 'xnet' строка неявно (исправьте меня, если я использую неправильный термин здесь), преобразованный в Integer. –

+0

Да, это неверно, базовые настройки vb.net 2015 и вы получаете; Дополнительная информация: Преобразование из строки «sadfasd» в тип «Integer» недопустимо. Но эй, если вы все знаете это лучше, найдите его;) – Lectere

+0

Это потому, что в нем есть буквы! Если вы просто вводите цифры, не превышающие 2147483647, у вас не будет проблем (пока параметр Strict не выключен). Попробуй. –

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.

 Смежные вопросы

  • Нет связанных вопросов^_^