C# .NET 3.5列表框选定值(Winforms)
我正在努力从Winforms列表框中获取所选值(请注意,值不是文本),该列表框已启用多选功能,并已绑定到数据库表,获取名称(作为DisplayMember)和ID(作为ValueMember)-我需要所选项目的ID listbox控件具有用于C# .NET 3.5列表框选定值(Winforms),c#,.net-3.5,listbox,multi-select,selectedvalue,C#,.net 3.5,Listbox,Multi Select,Selectedvalue,我正在努力从Winforms列表框中获取所选值(请注意,值不是文本),该列表框已启用多选功能,并已绑定到数据库表,获取名称(作为DisplayMember)和ID(作为ValueMember)-我需要所选项目的ID listbox控件具有用于SelectedValue的属性,用于获取一个选定项值,但不用于所有选定项值 SelectedItems属性返回一个列表框。SelectedObjectCollection似乎无法从中提取项目的值 请帮忙!谢谢。选择编辑您想要的内容 SelectedItem
SelectedValue
的属性,用于获取一个选定项值,但不用于所有选定项值
SelectedItems
属性返回一个列表框。SelectedObjectCollection
似乎无法从中提取项目的值
请帮忙!谢谢。选择编辑您想要的内容 SelectedItem和SelectedValue仅在设置DisplayMember和ValueMember时不同。我认为Multi-select不支持此功能
您要向列表框添加什么类型的项目?尝试将集合中的每个
对象
强制转换为所需的类型
。例如,如果我的商品类型为客户
,我可以这样做
var selected = listBox1.SelectedItems;
foreach ( var item in selected )
{
var singleCustomer = (Customer)item;
}
现在,您可以从客户
处获得所需的任何属性
这只是一个微不足道的例子,但我相信您可以将这个概念应用到您的问题中
更新(在问题被更新以指示列表框已绑定到表之后):
如果您绑定到一个数据表
,您可以尝试类似的方法(同样,虽然很简单,但也很相关):
元素[0]将是“ValueMember”,元素[1]将是“DisplayMember”。假设OP的“ID”字段为整数,请尝试以下操作:
int selectedCount = lstBxOb10Customer.SelectedItems.Count;
int[] selectedIDs = new int[selectedCount];
string[] selectedNames = new string[selectedCount];
for (int selected = 0; selected < selectedCount; selected++)
{
var itemArray = ( (DataRowView)item ).Row.ItemArray;
selectedIDs[selected] = (int)itemArray[0];
selectedNames[selected] = (string)itemArray[1];
}
int-selectedCount=lstBxOb10Customer.SelectedItems.Count;
int[]selectedds=newint[selectedCount];
string[]selectedNames=新字符串[selectedCount];
对于(int selected=0;selected
能否添加一些代码来显示如何在列表框中插入项目?列表框已绑定到一个数据库表,名称为DisplayMember,ID为ValueMember抱歉,我已更新了初始问题-我已将控件绑定到一个数据库表,名称为DisplayMember,ID为ValueMember。我想获取所选项目IDSEE@Steve Dignans答案,您可能需要强制转换到CustomerRow或其他内容。这是我手动添加内容时的方式,但我不知道它如何与绑定控件一起工作。
int selectedCount = lstBxOb10Customer.SelectedItems.Count;
int[] selectedIDs = new int[selectedCount];
string[] selectedNames = new string[selectedCount];
for (int selected = 0; selected < selectedCount; selected++)
{
var itemArray = ( (DataRowView)item ).Row.ItemArray;
selectedIDs[selected] = (int)itemArray[0];
selectedNames[selected] = (string)itemArray[1];
}