Bonjour à tous,

Sur une form, j'ai disposé un panel. Ce panel va contenir X panels dynamiquements créés.

Grâce aux évènements mouseMove de mon panel de base, je capte les mouvements de la souris.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  Private Sub pnlCompactus_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pnlCompactus.MouseMove
 
        If isKeyDown Then
 
            Dim DeltaX As Integer = (m_PanStartPoint.X - e.X)
            Dim DeltaY As Integer = (m_PanStartPoint.Y - e.Y)
 
            pnlContainer.AutoScrollPosition = _
            New Drawing.Point((DeltaX - pnlContainer.AutoScrollPosition.X), _
            (DeltaY - pnlContainer.AutoScrollPosition.Y))
 
        End If
 
    End Sub
    Private Sub frmTestGraphique_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
 
        If e.KeyCode = Keys.Menu Then
 
            m_PanStartPoint = pnlCompactus.PointToClient(Cursor.Position)
            isKeyDown = True
 
        End If
 
    End Sub
    Private Sub frmTestGraphique_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
 
        If e.KeyCode = Keys.Menu Then
 
            m_PanStartPoint = Nothing
            isKeyDown = False
 
        End If
 
    End Sub
Donc lorsque l'utilisateur maintient la touche ALT enfoncée et déplace la souris, cela à pour effet de déplacer les scroll du panel.

La ou j'ai un problème, c'est que cet event n'est pas catché sur les panel ajoutés dynamiquement dans mon panel de base.
Ce qui rend le déplacement surperflu car il faut absolument garder las ouris dans la zone panel non recouverte.

Est-il possible de catché l'event mouseMove au dessus de tout ET MEME en dehors de ma form?
Le but est de faire un déplacement similaire à celui dans Photoshop (barre d'espace + mouseMove)

L'idéal serait de capter le mouvement au niveau OS non?

Merci d'avance.