IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

Déplacement de contrôle


Sujet :

Framework .NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut Déplacement de contrôle
    Bonjour,

    Dans le cadre de mon emploi, je travail actuellement sur une application de personnalisation d'écran. Cependant, je rencontre quelques problèmes que je n'arrive pas à résoudre...

    Tout d'abord, je souhaite pouvoir déplacer les contrôles au clavier (avec les flèches directionnelles). Pour cela, j'ai fixé la propriété KeyPreview à true, et j'ai créer la routine suivante :

    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
     
     Private Sub gestionClavier(ByVal sender As Object, ByVal e As KeyEventArgs)
            Const PAS As Integer = 1
     
            Dim parent As Control
     
            If _ctrlSelect IsNot Nothing Then
                parent = _ctrlSelect.Parent
                creerImage(parent)
     
                Select Case e.KeyCode
                    Case Keys.Up
                        _ctrlSelect.Location = New Point(_ctrlSelect.Location.X, _ctrlSelect.Location.Y - PAS)
                    Case Keys.Right
                        _ctrlSelect.Location = New Point(_ctrlSelect.Location.X + PAS, _ctrlSelect.Location.Y)
                    Case Keys.Down
                        _ctrlSelect.Location = New Point(_ctrlSelect.Location.X, _ctrlSelect.Location.Y + PAS)
                    Case Keys.Left
                        _ctrlSelect.Location = New Point(_ctrlSelect.Location.X - PAS, _ctrlSelect.Location.Y)
                    Case Keys.Tab
                        rechercheProchainFocus(Keys.Shift)
                End Select
     
                dessinnerSelection(_ctrlSelect)
                parent.Invalidate()
            End If
     
            e.Handled = True
        End Sub
    Cette routine fonctionne correctement à l'exception d'un bouton, qui se trouve à l'intérieur d'une groupbox... J'ai tenté de redéfinir processCmdKey comme ceci :

    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
     
        Protected Overrides Function processCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
            Select Case keyData
                Case Keys.Left
                    Return True
                Case Keys.Right
                    Return True
                Case Keys.Up
                    Return True
                Case Keys.Down
                    Return True
            End Select
     
            Return MyBase.ProcessCmdKey(msg, keyData)
        End Function
    Je passe bien dedans, mais le contrôle ne se déplace pas...

    Autre point que je ne sait pas résoudre : j'utilise l'API Win32 pour déplacer les contrôles (SendMessage et ReleaseCapture), cela fonctionne correctement, sauf pour le label. D'après ce que j'ai lu, celui-ci ne possède pas d'Handle, si ce n'est celui du formulaire où il est directement dessinner. Je souhaiterais savoir comment déplacer mon contrôle à l'aide des APIs ?

    PS : connaissez vous des exemples de code pour une grille magnétique (style Visual Studio Designer ?)

    Merci d'avance pour vos réponses,

    Arnaud

  2. #2
    Membre expérimenté
    Avatar de Ecosmose
    Homme Profil pro
    Archi SI / Soft / Réseau / SCADA /Automate
    Inscrit en
    Janvier 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Archi SI / Soft / Réseau / SCADA /Automate
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 170
    Par défaut
    Peux tu ajouter une image ou une représentation de tes contrôles car là je comprends pas exactement ce que tu veux faire...

    En fait ce que j'aimerais voir plus précisement c'est la disposition de tes controles car je soupconne que la méthode paint() de la groupBox repositionne automatiquement les controles même parès que tu les ai reparamétré..à voir..

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut
    Salut,

    Désolé de répondre que maintenant...

    Voici une capture d'écran de mon projet à aujourd'hui :

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/02/2014, 21h44
  2. Réponses: 4
    Dernier message: 11/11/2010, 10h20
  3. Déplacement contrôle personnalisé
    Par koktel_dfr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/01/2010, 14h34
  4. Réponses: 19
    Dernier message: 01/02/2007, 12h58
  5. Réponses: 3
    Dernier message: 19/11/2004, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo