OK questo l'evento che gestisce i tasti delle picturebox contenute nel contenitore di FlowLayoutPanel (con tutti i controlli possibili annessi) funziona a meraviglia è spettacolare l'effetto grafico che ne viene fuori:
unico Neo, non so del perchè il tasto Canc (in rosso) non fa scattare questo evento, di fatti ho dovuto intercettare il Tasto BackSpace per l'eliminazione dell'immagine...sarebbe stato perfettocodice:Private Sub PictureBox_PreviewKeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles ImagesFlowLayoutPanel.PreviewKeyDown, MyBase.PreviewKeyDown If e.KeyValue = Keys.Escape Then Me.DialogResult = DialogResult.Cancel : Exit Sub Dim Contenitore As FlowLayoutPanel = sender.parent, PictureBoxFocused As PictureBox = GetFocusedControls(Contenitore) If PictureBoxFocused Is Nothing Then Exit Sub Select Case e.KeyValue Case Keys.Right, Keys.Left ' tasti destra e sinistra With Contenitore ' FlowLayoutPanel Dim Index As Integer = .Controls.IndexOf(PictureBoxFocused), Direction As Integer = IIf(e.KeyValue = Keys.Left, -1, 1) Index += Direction If Index < .Controls.Count And Index >= 0 Then Seleziona(Contenitore, .Controls(Index)) End With Case Keys.Up, Keys.Down ' tasti Up e Down With Contenitore ' FlowLayoutPanel .SuspendLayout() Dim Direction As Integer = IIf(e.KeyValue = Keys.Up, -1, 1) .AutoScrollPosition = Point.Subtract(New Point(0, (PictureBoxFocused.Height / 2) * Direction), .AutoScrollPosition) Dim AdiacentPicture As PictureBox = .GetChildAtPoint(New Point(PictureBoxFocused.Left + 10, IIf(Direction < 0, PictureBoxFocused.Top, PictureBoxFocused.Bottom) + 10 * Direction)) If AdiacentPicture IsNot Nothing Then Seleziona(Contenitore, AdiacentPicture) .ResumeLayout(True) End With Case Keys.Return ' Tasto Invio If Not Multiselect Then PictureBoxDoubleClick(PictureBoxFocused, Nothing) Else Beep() Case Keys.Cancel, Keys.Back ' tasti Canc e BackSpace RimuoviLink_LinkClicked(RimuoviLink, Nothing) End Select End Sub![]()
[COLOR=red]

:
[COLOR=red]
Rispondi quotando