Solved

how do i make a message box for if there is no numbers to divide (keep getting invalidargument=Value of '1' is not valid for 'index'. Parameter name: index error message)

Posted on 2011-03-16
9
423 Views
Last Modified: 2012-05-11
hi
I need to know how to make a message box for if the grades in the listbox equal 0 (meaning no grades have been entered and how to get the message box from poppin up all the time. It either pops up and wont calculate the average of the grades or i get the invalidargument=Value of '1' is not valid for 'index'. Parameter name: index error message. here is what i have:
' initialization phase
      Dim total As Integer = 0
        Dim gradeCounter As Integer = 0
        Dim grade As Integer = 0
        Dim average As Double = 0



        If IsNumeric(gradesListBox.Text = "" Or 0) = True Then
            MsgBox("sorry there is no grade to add")


        Else



            Do
                grade = gradesListBox.Items.Item(gradeCounter)
                total += grade
                gradeCounter += 1
            Loop Until gradeCounter = gradesListBox.Items.Count
            If grade = 0 Then
                average = False
            End If

            average = total / gradeCounter
            averageResultLabel.Text = String.Format("{0:F}", average)
            addButton.Enabled = True
            gradeTextBox.Focus()
        End If
    End Sub ' averageButton_Click
End Class ' ClassAverageForm
0
Comment
Question by:goldfingerpunk
  • 5
  • 3
9 Comments
 
LVL 29

Expert Comment

by:Paul Jackson
ID: 35153359
try:
 If gradesListBox.Text = "" Or gradesListBox.Text = 0 Then
0
 

Author Comment

by:goldfingerpunk
ID: 35153444
I tried that and now i get this error message : Conversion from string "" to type 'Double' is not valid.
0
 
LVL 29

Expert Comment

by:Paul Jackson
ID: 35153452
On the If statement line?
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 

Author Comment

by:goldfingerpunk
ID: 35153465
well i guess there is two IF statment lines but i tried what you said on the first one. here is what part of my assignment says- Summing the grades in the ListBox. Modify code in the averageButton_ Click event handler so that gradeCounter increments until its equal to the number of grades entered. Use gradesListBox. Items. Count to determine the number of items in the ListBox. The number returned by the Count property will be zero if there are no grades entered. Use an If Then selection statement to avoid division by zero and display a message dialog to the user if there are no grades entered when the user clicks the Average Button.
0
 
LVL 29

Expert Comment

by:Paul Jackson
ID: 35153472
what happens if you change the first If to :
If gradesListBox.Text = 0 Then
0
 
LVL 29

Expert Comment

by:Paul Jackson
ID: 35153485
Actually what you really need is
If gradesListBox.Count = 0 Then
0
 

Author Comment

by:goldfingerpunk
ID: 35153527
same as first time with your first response and the second time i get count is not a member of systems.windows.forms.listbox
0
 
LVL 29

Accepted Solution

by:
Paul Jackson earned 500 total points
ID: 35153628
sorry that should be :
If gradesListbox.Items.Count = 0 Then
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 35153743
Can you use a For...Next loop?
Private Sub averageButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles averageButton.Click
        If gradesListBox.Items.Count = 0 Then
            MessageBox.Show("No grades to average!")
        Else
            Dim total As Integer = 0
            Dim average As Double = 0

            For gradeCounter As Integer = 0 To gradesListBox.Items.Count - 1
                total += gradesListBox.Items.Item(gradeCounter)
            Next

            average = total / gradesListBox.Items.Count
            averageResultLabel.Text = String.Format("{0:F}", average)

            addButton.Enabled = True
            gradeTextBox.Focus()
        End If
    End Sub

Open in new window


It still technically meets the requirement of making "gradeCounter increment until its equal to the number of grades entered".
0

Featured Post

Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

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

Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
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…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

770 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