簡體   English   中英

如何將列表框中的項添加到文本框c#

[英]how to add items from listbox to textbox c#

我正在做一個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。

我想知道是否有另一種方法可以做到這一點?

謝謝

首先,如果您使用循環進行字符串操作,請使用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();

你需要遍歷列表框。

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; 

該消息沒有錯誤,它只是列表框的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;
string result = string.Empty;

foreach(var item in lbxItemBought.Items)
    result + = item.ToString()+Environment.NewLine;

txtReceipt.Text = result;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM