добавляя себя в C # - PullRequest
       0

добавляя себя в C #

0 голосов
/ 06 сентября 2010

добавление стоимости вместе.

так:

1 + 0 = 1

3 + 1 = 4

4 + 4 = 8

Как мне получить это, чтобы оно начиналось с 0, и я набираю 1 в поле txtbox, так что оно добавляет 1 к итогу, затем я набираю 3, поэтому оно добавляет 3 к итогу, что равно 4, теперь я набираю 4, и это добавляет 4 к общему количеству, что означает его сейчас на 8.

Как мне написать код, чтобы продолжать добавлять себя?

Ответы [ 3 ]

10 голосов
/ 06 сентября 2010

Это звучит как домашнее задание, поэтому я поставлю ответ на уровне, чтобы я не дал вам ответ, а скорее указал направление.

Основная проблема заключается в том, что вам нужно будет сохранить значение, чтобы оно было доступно, когда вы хотите добавить к нему следующий номер. Если вы объявляете локальную переменную внутри метода, она инициализируется при каждом запуске метода. Поэтому вместо этого вам нужно будет хранить значение где-то вне метода, например в поле класса. Затем вы можете просто добавить значение из текстового поля в поле с помощью

  1. Чтение строки из текстового поля
  2. Преобразование строки в числовой тип (например, int)
  3. Добавить число к итогу, хранящемуся в поле класса
1 голос
/ 06 сентября 2010
  • Вы должны разрешить пользователю выразить: «Я закончил ввод этого номера».В моем примере, нажатие Enter, когда фокус находится на текстовом поле, послужит этой цели.
  • Вам нужно сохранить текущий итог где-то .В моем примере поле в форме служит этой цели.
  • Вам необходимо интерпретировать текст в текстовом поле как число.Осторожно, пользовательский ввод не является надежным.В моем примере я игнорирую неверный ввод.
  • Вам необходимо отобразить сумму пользователю.В моем примере я использую окно сообщения.

int _total = 0;

public Form1()
{
    InitializeComponent();
    textBox1.KeyPress += textBox1_KeyPress;
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        int currentVal;
        if(!int.TryParse(textBox1.Text, out currentVal))
             return;

        _total += currentVal;
        textBox1.Clear();
        MessageBox.Show(_total.ToString());
    }
}
1 голос
/ 06 сентября 2010

Текстовое поле - это две вещи: это интерактивный элемент управления на экране, в который пользователь может печатать, и это часть состояния: текст, который они ввели.

Поскольку вы хотите иметь возможность добавить то, что пользователь набрал, к предыдущему значению, вам необходимо сохранить предыдущее значение, поэтому вам потребуется переменная, в которой будет храниться промежуточная сумма. (Переменная, объявленная как член класса, называется field .)

Вам также нужно будет решить, как вы узнаете, когда обновите значение в текстовом поле. Должно ли это быть, когда пользователь нажимает Return или у вас будет отдельная кнопка графического интерфейса, которую он должен нажать? В любом случае вам нужно будет добавить текущее значение текстового поля к значению в вашем поле, а затем обновить текст в текстовом поле с вычисленной суммой. Не забудьте обновить поле новой суммой.

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