Программа с использованием WindowsForms на C#

Нужно написать такую программу: изначально значение TextBox равно 0, есть две кнопки - +1 и -1, необходимо, чтобы значение менялось в зависимости от зажатой кнопки. Кажется, мое решение не будет работать, так как новое значение изменяемой переменной не будет сохраняться. Как это решить? Вот мой код:

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Loger_132
    private TextBox textBox1;
    private int value { get; set; } = 0;
    public Form1()
    {
        InitializeComponent();
        textBox1 = CreateTextBox(new Point(10, 10), new Size(240, 20), "0", true);
        var button1 = CreateButton("Вычесть 1", new Point(10, textBox1.Height + textBox1.Location.Y + 5), new Size(100, 25));
        var button2 = CreateButton("Прибавить 1", new Point(textBox1.Width - 89, textBox1.Height + textBox1.Location.Y + 5), new Size(100, 25));

        button1.Click += OnButtonClick;
        button2.Click += OnButtonClick;

        this.Controls.Add(textBox1);
        this.Controls.Add(button1);
        this.Controls.Add(button2);
    }

    private Button CreateButton(string Text, Point Location, Size Size)
    {
        Button button = new Button();
        button.Text = Text;
        button.Location = Location;
        button.Size = Size;

        return button;
    }
    private TextBox CreateTextBox(Point Location, Size Size, string Text = "", bool IsReadOnly = false)
    {
        TextBox textBox = new TextBox();
        textBox.Location = Location;
        textBox.Size = Size;
        textBox.Text = Text;
        textBox.ReadOnly = IsReadOnly;

        return textBox;
    }


    private void OnButtonClick(object sender, EventArgs e)
    {
        var button = (sender as Button);
        if (button.Text == "Вычесть 1")
            textBox1.Text = Convert.ToString(--value);
        else if (button.Text == "Прибавить 1")
            textBox1.Text = Convert.ToString(++value);
    }

Немного поменял расположение элементов, сделал метод 'CreateButton' - он делает кнопку и возвращает ее, также сделал и метод 'CreateTextBox' - он создает поле для ввода и возвращает его. Сделал чтобы текст в textBox можно было изменить только через программу.

→ Ссылка