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

Using string variables in a label or text box?

Here's an example, but Visual basic gives me an error when trying to run it. Say I wanted to ask the user for their name, then display it like: "Hello there" strName
By the way, my CDs finally came Friday, so I have VB .NET, but this was done in VB6.

--------------
Private Sub cmdStart_Click()
Dim strName As String
strName = txtName.Text
If txtName.Text = "" Then
MsgBox "Please Enter a Name",,"Error"
Else
lblGreeting.Caption = "Hello there" strName
txtName.Text = ""
End If
End Sub
---------------

Mr Gates
Light Poster
36 posts since May 2003
Reputation Points: 13
Solved Threads: 0
 
lblGreeting.Caption = "Hello there" strName


i cant quite remember which you need to us but that line of code should look like this

lblGreeting.Caption = "Hello there" & strName

or

lblGreeting.Caption = "Hello there" + strName


try them both out, im actually pretty sure that it is "+" so give that a try first

big_k105
PFO Founder
Team Colleague
357 posts since May 2003
Reputation Points: 36
Solved Threads: 2
 

They both work. I looked it up on a book I had, I guess before when I was searching I was just looking in the wrong place. Both + and & are used for string concatenation. Thanks for the help.

Mr Gates
Light Poster
36 posts since May 2003
Reputation Points: 13
Solved Threads: 0
 

I also had another queston, what if I wanted to use that same button for a different procedure. Like if I wanted to write an event procedure for the second time it was clicked.

Mr Gates
Light Poster
36 posts since May 2003
Reputation Points: 13
Solved Threads: 0
 

i will have to get back to you on this. i will have to go and look in vb and i am on linux right now so i will go over to my windows partition after while and see what i can come up with for you.

big_k105
PFO Founder
Team Colleague
357 posts since May 2003
Reputation Points: 36
Solved Threads: 2
 

Okay, in response to your first question, it is ALWAYS better to use & when connecting strings.

For your second, you would need to declare an integer or something on top of the forms codebehind (in the general declarations area) and use it as a counter. Then you can have if counter = 1 then do whatever, etc.

Tekmaven
Software Architect
Moderator
1,274 posts since Feb 2002
Reputation Points: 322
Solved Threads: 28
 

That seems to sound plausible. So I would do something like:

-------
Option Explicit
Dim intCounter As Integer
intCounter = 0

Private Sub cmdStart_Click()
Dim strName As String
strName = txtName.Text
intCounter = intCounter + 1
If intCounter = 1 Then
ElseIf txtName.Text = "" Then
MsgBox "Please Enter a Name",,"Error"
Else
lblGreeting.Caption = "Hello there" strName
txtName.Text = ""
lblGreeting.Caption = "What do you want to talk about?"
End If
If intCounter = 2 Then
ElseIf txtName.Text = "" Then
MsgBox "Please Enter Something to talk about",,"Error"
Else
lblGreeting.Caption = "Well, " & strName & " sounds fun"
txtName.Text = ""
End If
End Sub
---------

Would this be easier using Select Case, or what else could be an option? I'm trying to create a chat bot to talk to for an exercise, and I think things could get messy if I kept doing that.

Edit: Nevermind, that didn't work. It went right to the second case. (If counter = 2) Any Ideas?

Mr Gates
Light Poster
36 posts since May 2003
Reputation Points: 13
Solved Threads: 0
 

im sure the case would work great and probably be alot nicer looking. could you post the code you used so we can see why it didnt work. cause it should work great.

Option Explicit
Dim intCounter As Integer

Private Sub cmdStart_Click()
    Dim strName As String
    strName = txtName.Text
    intCounter = intCounter + 1
    
    Select Case intCounter
        Case Is = 1
            If txtName.Text = "" Then
                MsgBox "Please Enter a Name", , "Error"
            Else
                lblGreeting.Caption = "Hello there" & strName
                txtName.Text = ""
                lblGreeting.Caption = "What do you want to talk about?"
            End If
        Case Is = 2
            If txtName.Text = "" Then
                MsgBox "Please Enter Something to talk about", , "Error"
            Else
                lblGreeting.Caption = "Well, " & strName & " sounds fun"
                txtName.Text = ""
            End If
    End Select
End Sub

Private Sub Form_Load()
    lblGreeting.Caption = "What is your Name?"
    intCounter = 0
End Sub


i should have waited till you gave me what you had but i really wanted to do it. :oops: but this worked great for me. and i dont think you can initiate a variable in the Option Explicit. you should do it in the form load like i did above

big_k105
PFO Founder
Team Colleague
357 posts since May 2003
Reputation Points: 36
Solved Threads: 2
 

how to use intcounter in textbox

jeela12345
Newbie Poster
2 posts since Jun 2010
Reputation Points: 10
Solved Threads: 0
 

how to use intcounter in textbox

jeela12345
Newbie Poster
2 posts since Jun 2010
Reputation Points: 10
Solved Threads: 0
 

I have one counter in integer called cnt.
i have one lable.
counter cnt is incrementing
i want to change lable as counter.
What should do i?

manan0shah
Newbie Poster
1 post since Dec 2011
Reputation Points: 10
Solved Threads: 0
 

It's a bad idea to change the behaviour of a control based on the numebr of times it was clicked (or anything for that matter). A control should do the same thing every time you click it. Having said that, if you change the text in the button then the different behaviour is acceptable. For example, a button label might toggle from "Start" to "Stop". In this case, you can check the existing text to determine what behaviour is appropriate for the current click event.

Reverend Jim
Posting Shark
Moderator
1,161 posts since Aug 2010
Reputation Points: 253
Solved Threads: 157
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You