2016-04-26 3 views
0
Private Sub Btn_Cast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Cast.Click 
    Dim Counter As Integer = 0 
    If ChkBox_Barton.CheckState = 1 And ChkBox_Martin.CheckState = 1 And ChkBox_Richards.CheckState = 1 Then 
     MsgBox("Don't vote for more than 2") 
    End If 
    Dim Count_Barton As Integer 
    Dim Count_Martin As Integer 
    Dim Count_Richards As Integer 

    If ChkBox_Barton.Checked Then Count_Barton += 1 

    If ChkBox_Martin.Checked = 1 Then Count_Martin += 1 

    If ChkBox_Richards.CheckState = 1 Then Count_Richards += 1 

End Sub 

Проблема в том, что я пытаюсь считать ее каждый раз, а затем пусть она перезагружается и подсчитывается снова.как подсчитать количество флажков, отмеченных на визуальном основании?

Пример. Я выбираю Бартона один раз, щелкаю голосом, тогда я должен быть в состоянии выбрать кого-то нового и набрать голосование, и он должен продолжать подсчет.

Что мне делать?

Мне нужно отобразить результаты. Должен ли я просто удерживать номер в тексте или в файле Integer, а затем отображать его таким образом?

+0

Сначала ваше объявление переменной Count_Barton, Count_Martin, Count_Richards не должно быть внутри события Btn_Cast_Click, потому что вы их инициализации Каждый раз, когда вы нажимаете кнопку голосования –

+0

Вы хотите использовать радиокнопки, чтобы вы могли проголосовать за одного голоса за один раз, или вы можете проголосовать за нескольких человек одновременно? – ja72

ответ

0

Я быстро установил ваше приложение самостоятельно.

После Кодекс применяется к этому GUI:

enter image description here

Код:

Public Class VoteCounter 

Dim intCountBarton As Integer 
Dim intCountMartin As Integer 
Dim intCountRichards As Integer 

Private Sub ButtonVote_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonVote.Click 

    If CheckBoxBarton.CheckState = 1 And CheckBoxMartin.CheckState = 1 And CheckBoxRichards.CheckState = 1 Then 
     MsgBox("Don't vote for more than 2") 
     CheckBoxBarton.Checked = False 
     CheckBoxMartin.Checked = False 
     CheckBoxRichards.Checked = False 
    End If 

    If CheckBoxBarton.Checked Then 
     intCountBarton += 1 
    End If 

    If CheckBoxMartin.Checked Then 
     intCountMartin = intCountMartin + 1 
    End If 

    If CheckBoxRichards.Checked Then 
     intCountRichards = intCountRichards + 1 
    End If 

    CheckBoxBarton.Checked = False 
    CheckBoxMartin.Checked = False 
    CheckBoxRichards.Checked = False 

End Sub 

Private Sub ButtonResult_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonResult.Click 

    MsgBox("Barton: " & intCountBarton & vbNewLine & "Martin: " & intCountMartin & vbNewLine & "Richards: " & intCountRichards) 

End Sub 

Private Sub ButtonReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonReset.Click 

    CheckBoxBarton.Checked = False 
    CheckBoxMartin.Checked = False 
    CheckBoxRichards.Checked = False 

    intCountBarton = 0 
    intCountMartin = 0 
    intCountRichards = 0 

End Sub 

End Class 
0
Dim Count_Barton As Integer = 0 
    Dim Count_Martin As Integer = 0 
    Dim Count_Richards As Integer = 0 

Private Sub Btn_Cast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Cast.Click 
    Dim Counter As Integer = 0 'NOT SURE WHAT THIS IS DOING... NOT BEING USED 
    If ChkBox_Barton.CheckState = 1 And ChkBox_Martin.CheckState = 1 And ChkBox_Richards.CheckState = 1 Then 
     MsgBox("Don't vote for more than 2") 
    Else 
     If ChkBox_Barton.Checked Then Count_Barton += 1 

     If ChkBox_Martin.Checked = 1 Then Count_Martin += 1 

     If ChkBox_Richards.CheckState = 1 Then Count_Richards += 1 

    End If  

End Sub 
+0

Я беру вашу точку в проблеме всплывающих окон и исправил код, чтобы исправить это .... как и для другого комментария ... В VB ... оператор if может использоваться без конца и заканчивается, если весь оператор находится на одном линия.... – Mych

Смежные вопросы