C#,按下按钮循环显示TextBlock,如此接近

时间:2013-05-09 06:27:40

标签: c#

所以我在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 个答案:

答案 0 :(得分:1)

您不是存储每个字符串,而只存储最后一个字符串。

在您的平等之前添加一点+,如下所示:

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;
}

添加空格或换行也会很好,因为它们会以这种方式压扁。

答案 1 :(得分: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++]; 
    }
}

答案 2 :(得分:0)

我看到你总是看到"press next to continue"字符串。因为这是分配给文本框的 last 字符串。您必须将所有字符串混合到单个字符串中,并将最终字符串分配给文本框。

简单示例:

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

tbArray.Text = sb.ToString();

答案 3 :(得分: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++;
    }