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
421 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
 

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
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
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

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

Over the years I have built up my own little library of code snippets that I refer to when programming or writing a script.  Many of these have come from the web or adaptations from snippets I find on the Web.  Periodically I add to them when I come…
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
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…
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…

708 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

17 Experts available now in Live!

Get 1:1 Help Now