有没有一种方法可以在TextBox的单独行上显示数组中的项目?

时间:2019-01-01 06:38:15

标签: c#

我已将复选框中的项目添加到名为displayBurgerBox的列表框中,然后添加到了数组中。现在,当我单击按钮时,我想在文本框的单独一行上显示每个订单(数组)。我在框中而不是顺序System.Windows.Forms.ListBox+ObjectCollection中得到此文本。任何想法,还是我应该使用其他方法。

private void addItem_Click(object sender, EventArgs e)
{
    string[] listOfItems = new string[1000];
    int numberOfItems = 0;

    listOfItems[numberOfItems] = Convert.ToString(displayBurgerBox.Items);

    orderList.AppendText(listOfItems[numberOfItems]);
    orderList.AppendText(Environment.NewLine);
    MessageBox.Show(listOfItems[numberOfItems]);
}

1 个答案:

答案 0 :(得分:0)

问题出在下面一行。

Convert.ToString(displayBurgerBox.Items);

相反,您应该

displayBurgerBox.Items.Cast<String>().ToArray()

另外,我建议您不要预先声明固定大小的数组,而应该使用

var listOfItems= displayBurgerBox.Items.Cast<String>().ToArray()

最后,您可以使用以下方式连接数组

string.Join($"{Environment.NewLine}",listOfItems)

您所共享的示例中的最终代码将如下所示。

private void addItem_Click(object sender, EventArgs e)
{
        var listOfItems = displayBurgerBox.Items.Cast<String>().ToArray();
        MessageBox.Show(string.Join($"{Environment.NewLine}",listOfItems));
        textBox1.Text = string.Join($"{Environment.NewLine}", listOfItems);
 }

PS:您已经提到要将其添加到文本框中,但是找不到反映相同内容的代码。已添加代码以立即添加到文本框。请切记将TextBox的MultiLine属性更改为true以查看多行