?
Solved

VB program flow, forgot how to get it going

Posted on 2009-07-15
3
Medium Priority
?
174 Views
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.
etc.

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.



Thanks,
Primus
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"
 
            Sleep(5000)
 
            End
 
        End If
 
    End Sub
 
End Class

Open in new window

0
Comment
Question by:PrimusPilus
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 10

Assisted Solution

by:3_S
3_S earned 800 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
        ...
    Else
        ...
    End If

Open in new window

0
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 1200 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
        NextPrompt()
    End Sub
 
    Private Sub NextPrompt()
        If PromptEnumerator.MoveNext Then
            CurrentPrompt = PromptEnumerator.Current
            Label1.Text = CurrentPrompt.Question
        Else
            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
            NextPrompt()
        Else
            Me.Close()
        End If
    End Sub
 
End Class

Open in new window

0
 

Author Closing Comment

by:PrimusPilus
ID: 31603814
Thanks guys,

That works out great!

Primus
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

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

Introduction In a recent article (http://www.experts-exchange.com/A_7811-A-Better-Concatenate-Function.html) for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no o…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Suggested Courses

771 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