1

クラスのスコア計算機を作成するのに助けが必要です。スコアの入力を事前設定することはできず、カウント数を増やしながら、以前のすべての入力を合計する必要があります。

たとえば、テキストボックスに23と入力し、Enterキーを押してから、45と入力したとします。23を保持して45に追加するには、プログラムが必要です。ユーザーが数値を入力する限り、これを繰り返す必要があります。

私はそれがコレクションである必要があることを知っています、そして私はそれの基礎を持っています私は前からの入力を保存して新しいものに追加しそして次の入力にそれを追加するためにその合計を保存するコードが必要です。

これは、この問題を解決するための私の試みです。

 List<decimal> score = new List<decimal>();
        score.Add(scoreInput);
        decimal scoreTotal = 0;
        decimal scoreHolder = 0;
        foreach (decimal d in score)
        {

            scoreTotal = scoreHolder + scoreInput;
            scoreHolder = scoreInput;
            scoreInput = 0;
            txtTotal.Text = scoreTotal.ToString("");
            txtCount.Text = score.Count.ToString("");
            txtScore.Clear();
            txtScore.Focus();
        }
4

1 に答える 1

0

KeyDown イベントのイベント ハンドラーを追加し、次のようなコードを使用します。

private void tbEntry_KeyDown(object sender, KeyEventArgs e)
{
    Decimal entry;

    if (e.KeyCode == Keys.Enter)
    {
        if (Decimal.TryParse(tbEntry.Text, out entry))
        {
            score.Add(entry);
        }

        tbResult.Text = score.Sum(s => s).ToString();
        tbEntry.Text = string.Empty;
    }
}

これは、達成したいことを行うための 1 つの方法です。

編集:

これは、変数「スコア」がフォームのメンバーとして宣言されていることを前提としています。

private  List<decimal> score = new List<decimal>();

乾杯

于 2012-10-25T02:50:34.633 に答える