ho avuto lo stesso problema ed ho perso almeno mezza giornata di lavoro per risolverlo!!! grazie a questo post ho avuto l'intuizione giusta, il problema sta esattamente nell'interazione tra context menu e listview. Quando si clicca una voce del context menu, una volta sparito il menu, appare il rettangolo di selezione della list view che solitamente appare dopo un click prolungato su di un'area vuota e scompare al rilascio del bottone del mouse. Questa cosa in qualche modo provoca problemi se da una voce di menu si esegue la cancellazione di elementi della listview. La soluzione che ho trovato è semplice ed indolore basta semplicemente aggiungere due linee di codice seguenti all'inizio dell'evento click di ogni scpecifica voce del context menu':
listviewname.Enabled = False
listviewname.Enabled = True
esempio:
private void mnuElimina_Click(object sender, System.EventArgs e)
{
ListView.Enabled = False;
ListView.Enabled = True;
SelItem="";
int SelIndex=-1;
ListView.SelectedListViewItemCollection SL = this.dl.SelectedItems;
foreach (ListViewItem item in SL)
{
SelItem=item.SubItems[0].Text;
SelIndex=item.Index;
}
if (SelItem!="")
{
cn=new OleDbConnection(Connection.Active());
cn.Open();
cmd=new OleDbCommand("DELETE FROM _Current_AzioniGioco WHERE id=" + SelItem,cn);
cmd.ExecuteNonQuery();
cmd.Cancel();
cn.Close();
LoadList();
}
}