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

C# Discussion :

fenêtre déplaçable avec un formbordertyle à none


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut fenêtre déplaçable avec un formbordertyle à none
    bonjour les gens,
    on a la peau du ventre bien tiré aujourd'hui ?

    bon voilà, j'aimerais faire en sorte que ma windows form soit déplaçable, car elle a une formborderstyle à none.

    le code suivant fonctionne mais présente des défauts :

    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
     
    private Point mouse_offset;
     
            private void menu_MouseDown(object sender, MouseEventArgs e)
            {
                mouse_offset = new Point(-e.X, -e.Y);
            }
     
            private void menu_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    Point mousePos = Control.MousePosition;
                    mousePos.Offset(mouse_offset.X, mouse_offset.Y);
                    this.Location = mousePos; //move the form to the desired location
                }
            }
    le problème est que des fois, la souris sort du windows form, et dans ce cas le déplacement est finis. de plus, c'est lent, la fenetre ne se déplace pas très vite ...

    auriez-vous une solution plus ... confortable dirons-nous ? ^^

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    merci,
    je suis tombé sur ça aussi, mais je n'ai pas trouvé la commande EnableDragMove !
    j'ai dû sauter une étape ... O_o

    EDIT :
    le code source qu'il fournir ne fonctionne pas >_<

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    le support de microsoft m'a bien aidé ! c'est performant, rapide ...
    mais ca ne s'applique qu'au windows form

    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
     
    private const int WM_NCHITTEST = 0x84;
    private const int HTCLIENT = 0x1;
    private const int HTCAPTION = 0x2;
     
    protected override void WndProc(ref Message m)
    {
       switch(m.Msg)
       {
          case WM_NCHITTEST:
             base.WndProc(ref m);
    	 if ((int)m.Result == HTCLIENT)
    	    m.Result = (IntPtr)HTCAPTION;
    	    return;
                break;
       }
       base.WndProc(ref m);
    }
    mon windows form est bien chargé, il y a peu d'endroit sur lequel je peux cliqué !
    j'aimerais que cette fonction se lance sur certains éléments aussi, pour déplacer la fenetre et non l'élément en question, comment faire ? O_o

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    J'ai testé son assembly, il fonctionne très bien.

    As-tu bien ajouté WinFormsDragMove.dll à la palette des contrôles ? (en tenant compte de la version de ton projet bien sur).

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    non mais bon, j'ai trouvé une solution, j'ai mis quelques éléments en enabmed = true, mais qui s'affichent correctement quand même, et ça marche quand je clique dessus ! ça agit sur le windows form qui est juste en dessous.

    merci quand même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fenêtres multiples avec la librairie SDL
    Par pierrev1 dans le forum SDL
    Réponses: 4
    Dernier message: 10/12/2006, 11h36
  2. Réponses: 43
    Dernier message: 03/03/2006, 19h41
  3. Fenêtre utilisable avec Java
    Par Seth77 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 14/01/2006, 22h17
  4. Centrer une fenêtre ouverte avec window.open et statusbar
    Par Michaël dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 13h07
  5. [JFrame] Taille de la fenêtre complète (avec titre et bordures)
    Par RXN dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 23/09/2005, 23h35

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