Member 13130599 Ответов: 1

Есть ли способ сделать числовой переключатель вверх/вниз между конкретными значениями?


Я создаю микроволновый интерфейс, поэтому поле со списком не совсем подходит для моих целей, хотя оно и выполняет свою работу. Мне интересно, знает ли кто-нибудь, как я могу получить числовое поле вверх/вниз (или текстовое поле и две кнопки (одна вверх, одна вниз)) для переключения между 8 специфический значения, которые не разделены интервалами? (В частности: 900 Вт-высокий, 600 Вт-средний, 440 Вт-низкий, 270 Вт-размораживание, 250 Вт-кипение, 100 Вт-тепло)

Любая помощь будет очень признательна. Спасибо.

Что я уже пробовал:

Редактирование параметров числового поля вверх/вниз

Ниже приведен код, который я попытался эмулировать из решения Karthik, но который приводит к ошибке: "[индекс и элементы] не существуют в текущем контексте".

namespace combobox_simulation_trial
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            string[] items = new string[]
            { "900W - High", "600W - Medium", "440W - Low", "270W - Defrost", "250W - Simmer", "100W - Warm" };
            int index = 0;
        }

        private void btnUP_Click(object sender, EventArgs e)
        {
            index++;
            if (index < items.Length)
            {
                textBox1.Text = items[index];
            }
            else
                index = items.Length - 1;
        }

        private void btnDown_Click(object sender, EventArgs e)
        {
            index--;
            if (index > -1)
            {
                textBox1.Text = items[index];
            }
            else
                index = 0;
        }
    }
}

[no name]

Вы можете создать свой пользовательский элемент управления для этой функции..

1 Ответов

Рейтинг:
9

Karthik_Mahalingam

попробовать это
Создайте текстовое поле и две кнопки со следующими событиями

string[] items = new string[] { "900W - High", "600W - Medium", "440W - Low", "270W - Defrost", "250W - Simmer", "100W - Warm" };
       int index = 0;
       private void btnUp_Click(object sender, EventArgs e)
       {
           index++;
           if (index < items.Length)
           {
               textBox1.Text = items[index];
           }
           else
               index = items.Length - 1;
       }

       private void btnDown_Click(object sender, EventArgs e)
       {
           index--;
           if (index > -1)
           {
               textBox1.Text = items[index];
           }
           else
               index = 0;
       }


Member 13130599

Привет, Картик. Спасибо вам за решение.

Глядя на него так, как вы его изложили, кажется, что он должен работать. Предположительно, первые две строки должны лежать в разделе InitializeComponent?

Хотя, боюсь, я немного запутался.

Когда я ввожу в код "индекс" и "элементы", c# настаивает на том, что это ошибки, и не распознает их. Индекс уже определен вашим кодом как 0, так что я не знаю, почему ему это не нравится.

Я не думаю, что вы могли бы знать, почему эти двое не сотрудничают?

Ralf Meier

Я не вижу ошибки в Кодексе Картика.
Я думаю, что он должен работать, если вы используете его внутри кода формы, где вы разместили текстовое поле и кнопки. События Click-Events от кнопок Up - and Down-должны вызывать соответствующие методы.
Так... если что-то не работает хорошо, вы должны предоставить свой код, чтобы увидеть, где находятся проблемы ...

Member 13130599

Согласно вашему предложению, Ральф, я скопировал свою полную версию кода в свой первоначальный вопрос выше. Возможно, вы сможете сказать, где я ошибся, подражая решению, предоставленному Картиком

Ralf Meier

вы должны сделать объявление 'items ' и' index ' вне Form1-метода (это конструктор, и переменные существуют только внутри этого метода). Оба объявления должны принадлежать классу ...

Member 13130599

А, понятно! Огромное спасибо. Теперь он работает отлично. :)

Ralf Meier

Добро пожаловать...
Иногда это очень легко ... ;)

Karthik_Mahalingam

Спасибо Ральфу за его разъяснения

Ralf Meier

неважно... пожалуйста...

Karthik_Mahalingam

:)

Karthik_Mahalingam

Привет Член,
извините за поздний ответ, надеюсь, ваша проблема будет решена :)