Как подсчитать голоса из пункта, выбранного в выпадающем списке - PullRequest
0 голосов
/ 17 марта 2020

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

void BtnVoteClick(object sender, EventArgs e)
{
    // I already added the items from the properties tab
    if (comboxCandidate.SelectedItem == "VAL") 
    {
        int ctrVal = 0;
        ctrVal += 1;
        tbVal.Text = ctrVal.ToString();
    }

   if (comboxCandidate.SelectedItem == "LESTER")
   {
        int ctrLester = 0;
        ctrLester +=1;
        tbLester.Text = ctrLester.ToString();
    }
}

1 Ответ

0 голосов
/ 17 марта 2020

Вы не говорите, почему это не совсем работает, но, глядя на ваш код, вы получите следующее:

int ctrVal = 0;
ctrVal += 1;
...
int ctrLester = 0;
ctrLester +=1;

Здесь вы создаете новую переменную ctrVal / ctrLester в вашем выражении if каждый раз, когда он выполняется, а затем увеличивает его. Таким образом, значение будет только 1. И каждый раз, когда вы нажимаете на кнопку, переменная инициализируется заново.

Вам нужно переместить объявление и инициализацию ваших переменных на уровень класса, если вы хотите сохранить глобальный счет.

Так что у вас есть что-то вроде:

public partial class Form1 : Form
{
    int ctrVal = 0;
    int ctrLester = 0;
...

void BtnVoteClick(object sender, EventArgs e)
{
     if (comboxCandidate.SelectedItem.Equals("VAL"))
     {
        ctrVal += 1;
        tbVal.Text = ctrVal.ToString();
     } 
     else if (comboxCandidate.SelectedItem.Equals("LESTER"))
     {
        ctrLester +=1;
        tbLester.Text = ctrLester.ToString();
     }
 }

PS: Вы также должны использовать равно для сравнения строк, поэтому я обновил это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...