我需要从列表视图中删除项目,我要查找的代码将显示一个消息框以确认,如果没有选择项目,它将显示一个错误消息框
这是我的代码,它不工作:(
private void button2_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems != null)
{
var confirmation = MessageBox.Show(
"Voulez vous vraiment supprimer les stagiaires séléctionnés?",
"Suppression", MessageBoxButtons.YesNo, MessageBoxIcon.Question
);
if (confirmation == DialogResult.Yes)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Selected)
{
listView1.Items[i].Remove();
i--;
}
}
}
}
else
{
MessageBox.Show("aucin stagiaire selectionnes", "erreur",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Run Code Online (Sandbox Code Playgroud)
该错误不在删除中,但在消息框中我有两个消息框,必须在确认之前首先显示错误.
Ste*_*eve 10
从最后开始计数到零
for (int i = listView1.Items.Count - 1; i >= 0; i--)
{
if (listView1.Items[i].Selected)
{
listView1.Items[i].Remove();
}
}
Run Code Online (Sandbox Code Playgroud)
但是请考虑每个ListViewItem都有一个Index属性,并且使用该集合有利于避免冗余测试并在较少数量的项上循环.
(注意,SelectedItems集合永远不会为null,如果不存在选择,则集合为空但不为null)
所以你的代码可以被重写
if (listView1.SelectedItems.Count > 0)
{
var confirmation = MessageBox.Show("Voulez vous vraiment supprimer les stagiaires séléctionnés?", "Suppression", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (confirmation == DialogResult.Yes)
{
for (int i = listView1.SelectedItems.Count - 1; i >= 0; i--)
{
ListViewItem itm = listView1.SelectedItems[i];
listView1.Items[itm.Index].Remove();
}
}
}
else
MessageBox.Show("aucin stagiaire selectionnes", ...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52831 次 |
| 最近记录: |