我正在尝试在消息框中显示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次消息答案 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);