簡體   English   中英

列表框在winform中選擇的項目

[英]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都可以工作。

ListBoxComboBox獲取項目文本的正確方法是使用GetItemText方法。

項目的類型無關緊要,如果您使用了DataSourceDisplayMember它使用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.

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