获取ListBox中所选项的文本

时间:2012-11-28 20:52:07

标签: c# winforms

我正在尝试在消息框中显示listBox1的所选项目,这里是代码:

int index;
string  item;
foreach (int i in listBox1 .SelectedIndices )
{
    index = listBox1.SelectedIndex;
    item = listBox1.Items[index].ToString ();
    groupids = item;
    MessageBox.Show(groupids);
}

问题在于,当我选择多个项目时 消息框显示我选择的第一个并重复该消息 EX:如果我选择了3个项目,则第一个项目

将显示3次消息

4 个答案:

答案 0 :(得分:14)

您可以像这样迭代您的项目:

        foreach (var item in listBox1.SelectedItems)
        {
            MessageBox.Show(item.ToString());
        }

答案 1 :(得分:6)

foreach循环中的i具有您需要的索引。您使用的listBox1.SelectedIndex只有第一个。{1}}。所以项目应该是:

item = listBox1.Items[i].ToString ();

答案 2 :(得分:4)

1个带有所有选定项目的消息框怎么样?

List<string> selectedList = new List<string>();
foreach (var item in listBox1.SelectedItems) {
   selectedList.Add(item.ToString());
}
if (selectedList.Count() == 0) { return; }
MessageBox.Show("Selected Items: " + Environment.NewLine +
        string.Join(Environment.NewLine, selectedList));

如果选择了任何内容,则应为消息框中的每个选定项目提供一行。使用linq可能有一个更漂亮的方法,但你没有指定.NET版本。

答案 3 :(得分:2)

试试这个解决方案:

string  item = "";    
foreach (int i in listBox1.SelectedIndices )
    {
       item += listBox1.Items[i] + Environment.NewLine;
    }
MessageBox.Show(item);