Желание изменить метку с помощью выбора в поле со списком

#c#

#c#

Вопрос:

Я создаю программу, которая позволяет пользователю выбирать оценку / оценку из списка со списком и с помощью нажатия кнопки вычисляет ответ для пользователя. Однако по какой-то причине, когда я нажимаю кнопку вычисления, текст метки вообще не меняется. Также извините, если коды запутаны или выглядят неправильно, поскольку я все еще пытаюсь учиться.

 using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace btec_to_ucas
{

    public partial class Form1 : Form
    {
        //These are the values i want displayed on the label
        int PPP = 48;
        
        int MPP = 64;
        int MMP = 80;
        int MMM = 96;
        int MMD = 112;
        int DDM = 128;
        int DDD = 144;
        
        public Form1()
        {
            InitializeComponent();
            
        }
        // below i want whenever the button is pressed it will take the selected answer and display the int onto the label
        private void button1_Click(object sender, EventArgs e)
        {
            {
                switch (comboBox1.SelectedIndex)
                {
                    case 0:
                        if (comboBox1.SelectedIndex == PPP)
                        {
                            label1.Text = "48";
                        }
                        break;
                    case 1:
                        if (comboBox1.SelectedIndex == MPP)
                        {
                            label1.Text = "64";
                        }
                        break;
                    case 2:
                        if (comboBox1.SelectedIndex == MMP)
                        {
                            label1.Text = "96";
                        }



                        break;
                }
            }


        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            
               
                

        }
    }
}  ```

 

Комментарии:

1. Ваша метка не меняется, потому что вы проверяете, что SelectedIndex равен целочисленной константе. Это не может быть связано с тем, что коммутатор уже оценил SelectedIndex как другое значение. Пожалуйста, покажите, как вы инициализируете содержимое выпадающего списка.

2. TBH Я бы создал поле, которое вы можете назначить при изменении индекса, затем при нажатии кнопки просто обновите свойство текста метки до того, каким оно должно быть, и / или сделайте это в SelectedIndexChanged событии в целом.

Ответ №1:

Ваш оператор switch должен быть таким:

 switch (comboBox1.SelectedIndex)
{
    case 0:
        label1.Text = PPP.ToString();
        break;
    case 1:
        label1.Text = MPP.ToString();
        break;
        ...
 

Комментарии:

1. иисус Христос, спасибо тебе, чувак, я застрял на этом целую вечность

2. Не беспокойтесь. Если ответ помог, пожалуйста, отметьте его как принятый ответ.