954,517 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Homework Help????

I am a begginer in vb.net. Actually i am having problems to do my homework. I will be posting both the question and my answer.

Question

Create a small program that allows you to enter a number. If the number is greater than 100, you will see the "You win a lucky prize" statement in a message box. Else if the number is less that 100, the message box displays “Better luck next time”.

Answer
Private Sub TxtNum_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNum.TextChanged

Dim Num As Integer

If Num > 100 Then
MsgBox("You win a lucky prize")
ElseIf Num < 100 Then
MsgBox("Better luck next time")

End If

End Sub
End Class

My problem

When i debug the database my form appears but however when i enter a number lets say zero in the textbox the following message is displayed "Better Luck next time". The textbox is not working for two digit numbers or three digit numbers. And neither is the condition if (Num > 100) working. Can u plz explain as to what is wrong in my code.

Thanks...

Nawsheen
Newbie Poster
12 posts since Apr 2009
Reputation Points: 10
Solved Threads: 0
 

Restrict the textbox to accept number only.

ithelp
Nearly a Posting Maven
Banned
2,230 posts since May 2006
Reputation Points: 769
Solved Threads: 128
 

Because you didn't assign Num value to TextBox.Text value
you need to modify your code to

Private Sub TxtNum_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNum.TextChanged
Dim Num As Integer
Num = Int.Parse(TxtNum.Text)
If Num > 100 Then
MsgBox("You win a lucky prize")
ElseIf Num < 100 Then
MsgBox("Better luck next time")
End If
End Sub
End Class
Ramy Mahrous
Postaholic
2,196 posts since Aug 2006
Reputation Points: 480
Solved Threads: 276
 

By using text changed you are checking everytime a new character is entered. So the first character entered is 1 and you get a <100. The next character makes it a 10 so it is still less than 100. If the next character is a 0 you get a 100 so it doesn't do any thing. Instead use a button click event and I would use <100 and >=100.

waynespangler
Posting Pro in Training
461 posts since Dec 2002
Reputation Points: 84
Solved Threads: 58
 

waynespangler is correct, you don't want to use TextChanged event for that.

crazyhorse09
Junior Poster in Training
62 posts since Mar 2009
Reputation Points: 19
Solved Threads: 7
 
waynespangler is correct, you don't want to use TextChanged event for that.

That's right textchanged is not recommended.

My suggestion is to use a KeyPress or KeyUp/KeyDown event.

Try this one:

Private Sub Textbox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress
        If e.KeyChar = Chr(Keys.Enter) Then 
            If Me.Textbox1.Text = "" Or Not IsNumeric(Me.Textbox1.Text) Then
                MsgBox("Invalid Number Format", MsgBoxStyle.Critical)
                Me.Textbox1.Focus()
                Me.Textbox1.SelectAll()
                Exit Sub
            Else
                Dim i As Integer = Val(Textbox1.Text)
                If i >= 100 Then
                    MsgBox("you win")
                    Exit Sub
                Else
                    MsgBox("you lose")
                End If
            End If
        End If
    End Sub
c0deFr3aK
Junior Poster in Training
71 posts since Mar 2009
Reputation Points: 11
Solved Threads: 10
 

Hey friends!!!! how could you answer their question without looking at their code?!!!! which line they assigned textbox value to Num object?!!!!!

Ramy Mahrous
Postaholic
2,196 posts since Aug 2006
Reputation Points: 480
Solved Threads: 276
 
Dim Num As Integer

You are not setting the Num variable to value that was entered into the textbox; therefore, it will always be 0.

onedizzydevil
Newbie Poster
1 post since Apr 2009
Reputation Points: 10
Solved Threads: 1
 

onedizzydevil
You are not setting the Num variable to value that was entered into the textbox; therefore, it will always be 0.By Ramy Mahrous

Hey friends!!!! how could you answer their question without looking at their code?!!!! which line they assigned textbox value to Num object?!!!!!
Didn't you see my reply?!!

Ramy Mahrous
Postaholic
2,196 posts since Aug 2006
Reputation Points: 480
Solved Threads: 276
 

thnaks...that worked :)))))

Nawsheen
Newbie Poster
12 posts since Apr 2009
Reputation Points: 10
Solved Threads: 0
 

thanks...that worked :)))))

Nawsheen
Newbie Poster
12 posts since Apr 2009
Reputation Points: 10
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You