Originariamente inviato da tas
Il problema è che il controllo PictureBox non riceve il focus (se non da codice con il metodo PictureBox1.Focus). Di conseguenza, gli eventi relativi alla gestione tastiera e focus, implementati nella classe base Control, sono stati quasi tutti nascosti in quanto considerati non necessari per l'utilizzo del controllo.
Le strade per risolvere il problema sono due:
- imposti la proprietà del form KeyPreview = True e rilevi i pulsanti premuti attraverso gli eventi KeyDown, KeyPress e KeyUp del form stesso
- utilizzi un tuo UserControl al posto della PictureBox
My good
adesso funziona l'evento "PreviewKeyDown" delle PictureBox .. sarà che aveva bisogno di una ricompialata del progetto per farlo andare
sta di fatto che adesso và bene quello
ps Tas: per il punto 1 avevevo provato ma stranamente non funzionava , ora si anche questo! 
il focus lo effettuo tramite codice e tramite l'evento MouseDown della pictureBox
questa è solo parte del codice che viene eseguita dopo l'evento MouseDown ,si nota il fucus in fondo
codice:
......codice
Dim Contenitore As FlowLayoutPanel=sender.parent,
Picture as PictureBox=sender
Contenitore.SuspendLayout()
' applica lo stile di selezionato alla pictureBox cliccata
For Each PicBox As PictureBox In Contenitore.Controls
With PicBox
If PicBox Is Picture Then
P = PicBox
.BorderStyle = BorderStyle.Fixed3D
.Size = .MaximumSize
Trovato = True
ElseIf Not Multiselect Or Picture Is Nothing Then
' non è stata selezionata quindi riporta allo style default
.BorderStyle = IIf(Multiselect And Not New TipoStrings(PicBox.Image.Tag).IsFile, BorderStyle.FixedSingle, BorderStyle.None)
.Size = .MinimumSize
End If
End With
Next
Contenitore.ResumeLayout(True)
' se è stata trovata allora scrolla il contenitore alla picturebox e rende attivo il focus della pictureBox
If P IsNot Nothing Then
Contenitore.ScrollControlIntoView(P)
P.Focus()
End If
.....codice
adesso sono apposto ... comunque grazie Tas per la pronta risposta