VB program flow, forgot how to get it going

Posted on 2009-07-15
Last Modified: 2012-05-07
Hi all,

It's been a really long time since I've done VB and I was never any good at it.

I'm trying to write a simple program with two buttons and a label. The two buttons are Yes and No. The label will ask a question.

I'm having trouble getting it to flow, for example:

Are you over 21? User clicks Yes.
Are you a male? User clicks No.
Is your name Jane? User clicks Yes.

I have some code below that doesn't work at all. I forget what I'm missing in order for this to work, obviously calling the MainFlow sub would be a start but I can't even remember how to do that or if that's possible in VB. Maybe I'm mixing up my languages, I don't know!

I had it working with out the MainFlow sub but after 1 click it would just stop working.

Public Class Form1

    Dim BtnOne As Boolean = False

    Dim BtnTwo As Boolean = False

    Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)

    Public Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click

        BtnOne = True

    End Sub

    Public Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click

        BtnTwo = True

    End Sub

    Public Sub MainFlow()

        If BtnOne = True Then

            lbl1.Text = "Are you a male?"

            BtnOne = False

            If BtnOne = True Then

                lbl1.Text = "Is your name Jane?"

            End If

        ElseIf BtnTwo = True Then

            lbl1.Text = "Alright, then you can't continue"



        End If

    End Sub

End Class

Open in new window

Question by:PrimusPilus
LVL 10

Assisted Solution

3_S earned 200 total points
ID: 24861001
You can use a msgbox to ask the 3 questions

    Dim age As Integer

    age = MsgBox("Are you over 21?", vbYesNo, "Age")


    If age = vbYes Then




    End If

Open in new window

LVL 85

Accepted Solution

Mike Tomlinson earned 300 total points
ID: 24862855
Create a New Project with lblQuestion, btnYes and btnNo:
Public Class Form1

    Private Class Prompt

        Public Question As String

        Public CorrectAnswer As Boolean

    End Class

    Private CurrentPrompt As Prompt

    Private Prompts As New List(Of Prompt)

    Private PromptEnumerator As System.Collections.Generic.List(Of Prompt).Enumerator

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Prompts.Add(New Prompt() With {.Question = "Are you over 21?", .CorrectAnswer = True})

        Prompts.Add(New Prompt() With {.Question = "Are you a male?", .CorrectAnswer = False})

        Prompts.Add(New Prompt() With {.Question = "Is your name Jane?", .CorrectAnswer = True})

        PromptEnumerator = Prompts.GetEnumerator


    End Sub

    Private Sub NextPrompt()

        If PromptEnumerator.MoveNext Then

            CurrentPrompt = PromptEnumerator.Current

            Label1.Text = CurrentPrompt.Question


            MessageBox.Show("You Passed!")

        End If

    End Sub

    Private Sub CheckAnswer(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnYes.Click, btnNo.Click

        Dim Answer As Boolean = (sender Is btnYes)

        If Answer = CurrentPrompt.CorrectAnswer Then




        End If

    End Sub

End Class

Open in new window


Author Closing Comment

ID: 31603814
Thanks guys,

That works out great!


Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction While answering a recent question ( in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now