2013-05-09 104 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++; 
    }