2013-05-09 64 views
0

所以我在C#中,初学者的位,我已经搜索周围,但无法找到任何东西。C#,循环通过TextBlock上的按钮按下,所以关闭

我在我的屏幕上有一个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; 
     } 
+0

当您按下按钮一次时,您在此处编写的所有代码都会执行。所以它会一次完成整个循环,显然在最后一行结束。你需要让它前进**一行,例如记录它最后一行,并添加一行。 (你可以使用%4,也就是除以4的余数,去0而不是4,然后换行) – Patashu 2013-05-09 06:28:46

+0

我想你想'tbArray.Text + = s;' – 2013-05-09 06:32:41

回答

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++]; 
    } 
} 
+0

你能否给我一个这样的例子,对不起,我说我对编程非常陌生,非常感谢你 – 2013-05-09 06:32:07

+0

更新了我的回答 – 2013-05-09 06:35:40

+0

我无法想象这是不行的。确保'index'是你的类中的一个字段,就像数组一样。 – 2013-05-09 06:43:25

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

这将是也是不错的添加一个空格或因为他们将这种方式被挤压在一起的新生产线。

+0

这显示了所有的文字,我想它,所以它首先会显示数组中的文本位置0,然后当再次按下按钮时,它显示在[1]等:) – 2013-05-09 06:34:44

0

我immgine你总是看到"press next to continue"字符串。因为这是最后字符串分配给一个文本框。你必须将所有字符串都加入到单个字符串中,并将最终字符串分配给文本框。

简单的例子:

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

tbArray.Text = sb.ToString(); 
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++; 
    }