在C#中获取ListBox中多个选定项的索引

3

我有两个列表框。第一个 ListBox 中的项目是“产品”列表,第二个 ListBox 中的项目是“产品中的项目”列表。当用户点击第一个(产品)列表框中的项目时,第二个 ListBox 将显示所选产品中的项目列表。

例如:

Products     Items in Proucts
  AA*                 1
  BB                  2
  CC                  3   

在上面的示例中,当前用户选择了AA产品。1、2、3是AA产品中的项目。
对于当前的程序,我已经完成了。用户一次只能选择一个“产品”。然后我想要改成多选。所以我想要获取每个用户选择的产品的索引号,然后我可以从数据库中检索数据,以获取所有已选择产品的“产品项”。
if (productsListBox.SelectedItmes.Count >= 0)
{
 // please provide me coding here to get index number for each selected items in   productListBox.
}
3个回答

3
我已经得到了答案:
 if (productListBox.SelectedItems.Count >= 0)
 {
    for (int i = 0; i < productListBox.SelectedItems.Count; i++)
       {
            MessageBox.Show(productListBox.SelectedIndices[i].ToString());
       }
  }

1
应该用SelectedItems替换SelectedIndices。尝试建议编辑,但审核人员回答“此编辑不正确”。想想为什么。 - P-L

1
if (productsListBox.SelectedItmes.Count >= 0)
{

    string IDs = string.Empty;
    foreach( ListItem li in productsListBox.SelectedItmes ) 
    {
        IDs += li.Value+"," ;
    }
        IDs = IDs.Trim(',');

}

它会给你一个所选ID的CSV文件


我使用的是VS 2005。看一下ListItem的属性,这里不支持。 - Qusyaire Ezwan
有一个ListViewItem :). MSDN - dvvrd
好的。实际上你没有提到是Web还是Windows,我以为你在问Web(asp.net)。 - yogi
尝试更正打字错误,但在将SelectedItmes重命名为SelectedItems时被拒绝。 - P-L

0
private string GetTagsList()
    {
        string Tags = string.Empty;

        if (lstTags.SelectedItems.Count >= 0)
        {
            for (int i = 0; i < lstTags.SelectedItems.Count; i++)
            {
                Tags += lstTags.SelectedIndices[i].ToString() + ",";
            }
            Tags = Tags.Trim(',');
        }

        return Tags;
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接