Программа с использованием 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 можно было изменить только через программу.
