2 回答

TA貢獻1858條經(jīng)驗 獲得超8個贊
private void lvTasks_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A && e.Control)
{
lvTasks.MultiSelect = true;
foreach (ListViewItem item in lvTasks.Items)
{
item.Selected = true;
}
}
if (e.KeyCode == Keys.Delete)
for (int i = lvTasks.SelectedItems.Count - 1; i >= 0; i--)
{
ListViewItem itm = lvTasks.SelectedItems[i];
lvTasks.Items[itm.Index].Remove();
}
}
編輯
你的線路 lvTasks.Items.Remove(lvTasks.SelectedItems[0]);
這是問題所在。您只是刪除索引 0 處的項目。您需要對它們進行循環(huán)。
編輯 2僅當您要刪除所有項目時才有效。如果您真的只想刪除選定的項目。更改 for 循環(huán)并刪除 List :
for (int i = lvTasks.SelectedItems.Count - 1; i >= 0; i--)
{
ListViewItem itm = lvTasks.SelectedItems[i];
lvTasks.Items[itm.Index].Remove();
}
那應該有效。

TA貢獻1943條經(jīng)驗 獲得超7個贊
我會使用一個while循環(huán):
if (e.KeyCode == Keys.Delete)
{
while (lvTasks.SelectedItems.Count > 0)
{
lvTasks.SelectedItems[0].Remove();
}
}
- 2 回答
- 0 關(guān)注
- 197 瀏覽
添加回答
舉報