Se stai usando .NET Framework dal 3.0 in su almeno, ti consiglio di non dichiarare un nuovo delegate a meno che non sia strettamente necessario.
Ti consiglio invece di usare i delegate generici:
Codice:
Action<int> SelectionAction = (selItem) => {};
oppure
Codice:
private delegate void SelectListBoxItemDelegate(object item);
potevi dichiararlo così
Codice:
private delegate void SelectListBoxItemDelegate(int item);
e non avresti avuto bisogno di fare il cast esplicito.