0

私はC#で作業していますが、少し初心者です。検索しましたが、何も見つかりません。

画面とボタンにTextBlockがあり、ボタンが押されるたびに、新しいテキストをTextBlockのコンテンツにしたいのですが、これはこれまでのものですが、最後の行しか表示されません。

 string[] arr = new string[4]; 
        arr[0] = "Hello and Welcome";               
        arr[1] = "To the new app";             
        arr[2] = "enjoy your stay";             
        arr[3] = "press next to continue";          

        for (int i = 0; i < arr.Length; i++)
        {
            string s = arr[i];
            tbArray.Text = s;
        }
4

4 に答える 4

0

私の理解が正しければ、ボタンが押されるたびに配列の次の要素を表示したいですか? 配列の現在のインデックスをクラスの変数に格納し、ボタンが押されるたびにその値をインクリメントする必要があります。明らかに、インデックスが範囲外でないことを確認してください。

public class Foo
{
    private int index = 0;

    private string[] arr = new [] { "Hello and Welcome",
                                    "To the new app",
                                    "enjoy your stay",
                                    "press next to continue" };     

    private void ButtonCallback(...)
    { 
         tbArray.Text = arr[index++]; 
    }
}
于 2013-05-09T06:30:09.773 に答える
0

あなたはいつも"press next to continue"文字列を見ていると思います。これは、テキスト ボックスに割り当てられた最後の文字列だからです。すべての文字列を単一の文字列に集約し、最終的な文字列をテキスト ボックスに割り当てる必要があります。

簡単な例:

StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < arr.Length; i++)
{
  sb.Append(arr[i]); 
}

tbArray.Text = sb.ToString();
于 2013-05-09T06:34:00.213 に答える
0

ボタンを押すたびに配列から新しいテキストを表示したい場合

グローバル「i」変数と配列「arr」

/* global variable */
var i = 0;
/* your array - e.g. javascript array */
var arr = ['Hello and Welcome', 
            'To the new app', 
            'enjoy your stay', 
            'press next to continue'];

この関数を呼び出します

 function displayText() {
        if(i >= arr.length) {
            i=0;
        }
        yourTextBlock.Text = arr[i];
        i++;
    }
于 2013-05-09T07:09:42.527 に答える