所以我在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;
}
答案 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++;
}