[英]listbox selected items in winform
我在Windows應用程序中有列表框,按鈕和文本框控件。 如何在文本框中顯示多個選定值。
這是我的代碼
textBox1.Text = listBox1.SelectedItems.ToString();
但它在文本框中顯示如下:(我選擇了多個項目)
System.Windows.Forms.ListBox+Selec.
請幫我
你可以這樣做:
string text = "";
foreach (System.Data.DataRowView item in listBox1.SelectedItems) {
text += item.Row.Field<String>(0) + ", ";
}
textBox1.Text = text;
您需要迭代項目集合。 就像是:
textBox1.Text = "";
foreach (object o in listBox1.SelectedItems)
textBox1.Text += (textBox1.Text == "" ? "" :", ") + o.ToString();
帖子很老但是沒有正確的一般答案,無論數據綁定項目類型如何,例如
List<T>
,DataTable
都可以使用,或者無論設置或不設置DisplayMember
都可以工作。
在ListBox
或ComboBox
獲取項目文本的正確方法是使用GetItemText
方法。
項目的類型無關緊要,如果您使用了DataSource
和DisplayMember
它使用DisplayMember
返回文本,否則它使用項目的ToString
方法。
例如,要獲取所選項目文本的逗號分隔列表:
var texts = this.listBox1.SelectedItems.Cast<object>()
.Select(x => this.listBox1.GetItemText(x));
MessageBox.Show(string.Join(",", texts));
注意:對於那些正在查找所選項目值而不是項目類型和值成員字段的所選項目文本的用戶,他們使用GetItemValue
擴展方法。
實際上,如果您知道輸入到ListBox中的對象類型,則所選項目就是該類型,這里是一個示例:FileInfo到ListBox的輸入列表:
FileInfo[] lFInfo = new DirectoryInfo(textBox1.Text).GetFiles();
foreach (var i in lFInfo)
lstFile.Items.Add(i);
用於將所選文件復制到textBox2.Text路徑的復制功能:
private void btnCopy_Click(object sender, EventArgs e)
{
foreach (FileInfo i in lstFile.SelectedItems)
File.Copy(i.FullName, Path.Combine(textBox2.Text, i.Name));
}
ListBox.SelectedItems :返回當前所選項的集合。
循環遍歷列表框的SelectedItems集合。
foreach (ListItem liItem in ListBox1.SelectedItems)
{
// write your code.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.