0

ユーザーが選択に追加した各モジュールと、モジュール名の下にあるそのモジュールのすべての評価を表示する動的UIを作成しました。すべてのデータは、textBoxesおよびlabelsとしてオブジェクトを含む配列リストに保存されます。

外観は次のとおりです: http ://www.4shared.com/photo/fullsize/Ja3jHpRJ/screen1.html

次に、ユーザーは各評価のマークを入力する必要があります。[計算]ボタンは、各モジュールの全体的なマークを計算する必要があります。この段階では、マークを足し合わせています。モジュールが1つだけ追加されている場合、プログラムは正常に機能しますが、モジュールがさらにある場合は、すべてに数字を入力しても、TextBoxが空であると思われるようです。

これが私のコードです

private void calculateButton_Click(object sender, EventArgs e)

    {
        int modLength = dat.ModuleTitle.Count;
        int modAsses = 0;
        int loopCount = 0;

        for (int i = 0; i < modLength; i++)
        {

            int total = 0;

            if ((textboxComputer[loopCount] as TextBox).Text == "")
            {
                Console.WriteLine("!!!!!");
            }
            else
            {
                modAsses = int.Parse(dat.ModuleAssessNum[i].ToString());
                for (int y = 0; y < modAsses; y++)
                {

                    total = total + int.Parse((textboxComputer[loopCount] as TextBox).Text.ToString());

                    loopCount = loopCount + 1;
                }

                Console.WriteLine(total);
            }
        }
    }  

2つ以上のモジュールを追加すると、「!!!!!」と表示されます。メッセージが、追加された最初のモジュールのマークを計算します。

ここにいくつかの出力があり ますhttp://www.4shared.com/photo/fullsize/PlY29BMQ/screen2.html

4

2 に答える 2

0

画面上に追加の動的要素を作成するコードがページ読み込みの一部として呼び出されていることを確認する必要があります。これにより、ビューステートが要素に挿入され、コードで読み戻すことができます。

于 2012-05-02T12:19:41.273 に答える
0

コードに何か問題があり、おそらく多くの問題があります(変数の名前を除く)。

変数を見てください。loopCount条件付きで変更するのはループ内だけですが、常にループの開始時(実行する場所textboxComputer[loopCount])で使用します。

では、その予想される動作は何ですか?初めてループに入るときは、「else」の部分に移動すると、言うように合計を出力できますが、loopCount変数も変更します。一度ループに入ると、Console.WriteLine("!!!!!");二度と変更することはありません。したがって、反復は動作します。同じ。

于 2012-05-02T12:20:18.433 に答える