【问题标题】:how to add items from listbox to textbox c#如何将列表框中的项目添加到文本框c#
【发布时间】:2013-11-05 08:33:54
【问题描述】:

我正在做一个 ITP 项目。我需要将列表框中的所有项目添加到文本框中。我尝试使用的代码是:

tbxReceipt.Text = "The items you purchased are:\r\n\r\n" + lbxItemBought.Items.ToString()
+ "\r\n\r\nYour total price was:" + lblLastCheckout.Text;

但是当我使用代码 lbxItemBought.Item.ToString() 时,它会出现错误:

System.Windows.Forms.ListBox+ObjectCollection。

我想知道是否有其他方法可以做到这一点?

谢谢

【问题讨论】:

  • +1 用于展示您的尝试并明确您想要实现的目标。
  • 你需要遍历你的 ListBox 集合。

标签: c# textbox listbox


【解决方案1】:

您需要遍历列表框。

string value = "The items you purchased are:\r\n\r\n";
foreach (var item in lbxItemBought.Items)
{
   value += "," + item.ToString(); 
}

value += "\r\n\r\nYour total price was:" + lblLastCheckout.Text ;
tbxReceipt.Text = value; 

【讨论】:

    【解决方案2】:

    首先,如果您使用循环进行字符串操作,请使用StringBuilder

    现在试试

    StringBuilder a = new StringBuilder();
    a.Append("The items you purchased are:\r\n\r\n");
    foreach (var item in lbxItemBought.Items)
    {
        a.Append(item.ToString());
    }
    a.Append("\r\nYour total price was:");
    a.Append(lblLastCheckout.Text);
    tbxReceipt.Text = a.ToString();
    

    【讨论】:

      【解决方案3】:

      该消息没有错误,它只是列表框的Items-property 的字符串表示形式。

      当您想要获得项目名称的串联(例如)时,您必须遍历Items-collection,将单个元素转换为您放入其中的内容,然后串联显示字符串。例如,如果您的项目类型是 SomeItem 并且它具有类似 Name 的属性,您可以像这样使用 LINQ:

      var itemNames = string.Join(", ", lbxItemBought.Items
                                                     .Cast<SomeItem>()
                                                     .Select(item => item.Name));
      tbxReceipt.Text = "The items you purchased are:\r\n\r\n" + itemNames + "\r\n\r\nYour total price was:" + lblLastCheckout.Text;
      

      【讨论】:

      • 对不起,我的知识太少了,但是 是什么,因为当我把它放在我的代码中时,会出现错误提示“找不到类型或命名空间名称 'SomeItem'。怎么办我愿意吗?
      • 这是您放入列表框中的项目的类型。如果这些只是字符串,请使用 string 而不是 SomeItem,例如。
      【解决方案4】:
      string result = string.Empty;
      
      foreach(var item in lbxItemBought.Items)
          result + = item.ToString()+Environment.NewLine;
      
      txtReceipt.Text = result;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多