Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

How can I loop through multiple choice questions and check what ones have been answered?

Posted on 2004-10-11
3
Medium Priority
?
221 Views
Last Modified: 2010-08-05
How can I loop through multiple choice questions and check what ones have been answered?

Say I have radioList questions

RadQ1
   a/ Possible Answer
   b/ Possible Answer
   c/ Possible Answer
   d/ Possible Answer
RadQ2
   a/ Possible Answer
   b/ Possible Answer
   c/ Possible Answer
   d/ Possible Answer
RadQ3
   a/ Possible Answer
   b/ Possible Answer
   c/ Possible Answer
   d/ Possible Answer
RadQ4
   a/ Possible Answer
   b/ Possible Answer
   c/ Possible Answer
   d/ Possible Answer
RadQ5
   a/ Possible Answer
   b/ Possible Answer
   c/ Possible Answer
   d/ Possible Answer

Ok then Possible answer is the DataTextField and behind the scenes I have a,b,c & d set to either Correct or Incorrect as the DataValueField.

How can I check which questions have been answered. I have all the RadQ1,RadQ2 ID's displayed in labels so that they can be referred to by their ID...etc

I would like to basically fill in any unanswered questions automatically with an incorrect selections.

This question is very urgent and thus I would greatly appreciate your input

Thanks very much

Paul G

0
Comment
Question by:pgilfeather
[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 27

Expert Comment

by:planocz
ID: 12275849
Here is a sample in a Class that you could use as you loop thru the controls (RadioButtons,etc.)....

Imports System.Windows.Forms
Public Class clsControlID
    Inherits System.Windows.Forms.Control
    ' Return a reference to the control with the specified name,
    '  searched into the specified container and its sub-controls
    ' Note: it requires the GetAllControls function
    '
    ' Example: get a reference to a Label named "lblTest", and set its Text property
    '  DirectCast(FindControl("lblTest", Me), Label).Text = "Found!"

    Public Overloads Shared Function FindControl(ByVal ctlName As String, ByVal container As Control) As Control
        ' retrieve an array with all the controls of the
        ' input container controls, and its sub-controls
        Dim ctls() As Control = GetAllControls(container)
        Dim ctl As Control
        For Each ctl In ctls
            ' loop through the returned controls,
            ' and return the one with the
            ' wanted name, if present
            If ctl.Name = ctlName Then Return ctl
        Next
    End Function
    Public Overloads Shared Function FindControl(ByVal singleControl As Control, ByVal container As Control) As Control
        Dim ctls() As Control = GetAllControls(container)
        Dim ctl As Control
        For Each ctl In ctls
            If TypeOf (singleControl) Is TextBox Then
                If ctl.Name Is singleControl.Name Then Return ctl
            End If
        Next
    End Function
    ' Returns an array with all the controls in the specified container control and
    ' its child containers
    ' Example:
    '    ' print the name of all the controls on the form and its child container
    ' controls
    '    Dim ctl As Control
    '    For Each ctl In GetAllControls(Me)
    '        Debug.WriteLine(ctl.Name)
    '    Next
    Shared Function GetAllControls(ByVal container As Control) As Control()
        Dim al As New ArrayList
        Dim ctl As Control
        For Each ctl In container.Controls
            GetAllControlsHelper(ctl, al)
        Next
        Return al.ToArray(GetType(Control))
    End Function

    Shared Sub GetAllControlsHelper(ByVal container As Control, ByVal al As ArrayList)
        ' add this control to the ArrayList
        al.Add(container)
        ' add all its child controls, by calling this routine recursively
        Dim ctl As Control
        For Each ctl In container.Controls
            GetAllControlsHelper(ctl, al)
        Next
    End Sub
End Class
0
 

Author Comment

by:pgilfeather
ID: 12275939
Thanks but this looks a bit over complicated, I'm sure there must be a much simpler way to do what I've asked. Also you have not made any regerence to my example.

Kind Regards

Paul G
0
 
LVL 10

Accepted Solution

by:
Hans Langer earned 1000 total points
ID: 12278219
Hi,
You can use GroupBox for each cuestion and ask this way if it was answered:

'  me.grpQ1 = GroupBox for question1
'  And put all answer of question 1 into GroupBox1 and
'  Do the same thing with others questions.

Dim oRadioButton As RadioButton

For Each oRadioButton In grpQ1.Controls
      If oRadioButton.Checked Then MsgBox("Question 1 Answered")
Next

For Each oRadioButton In grpQ2.Controls
      If oRadioButton.Checked Then MsgBox("Question 2 Answered")
Next

Etc...

GL
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This article explains how to create and use a custom WaterMark textbox class.  The custom WaterMark textbox class allows you to set the WaterMark Background Color and WaterMark text at design time.   IMAGE OF WATERMARKS STEPS Create VB …
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Loops Section Overview
Suggested Courses

597 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