我有列表框,按钮和文本框控件在Windows应用程序。 我怎样才能显示一个文本框多选择的值。
这是我的代码
textBox1.Text = listBox1.SelectedItems.ToString();
但在这样的文本显示:(我选择一个以上的项目)
System.Windows.Forms.ListBox+Selec.
请帮我
我有列表框,按钮和文本框控件在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
扩展方法。
Actrually,如果你知道你的对象输入到列表框的类型,所选择的项目是这种类型的,这里是一个示例:FileInfo的输入清单列表框:
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.
}