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

Windows Presentation Foundation Discussion :

Comment déplacer un OpenFileDialog ?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Par défaut Comment déplacer un OpenFileDialog ?
    Bonjour,

    Je souhaite désespérement déplacer un OpenFileDialog (System.Windows.Forms) et impossible de trouver quoi que ce soit pour le faire.

    Quelqu'un a une piste ?

    Merci d'avance.

    Tito

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    par deplacer tu veux dire quoi, mettre a une position x,y par rapport a l'ecran ?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    sinon c'est une solution win32 qu'il te faut
    1- get the hwnd avec un findwindow (cherche la classe avec spy++)
    2- utilise movewindow

    regarde ici
    http://windows-programming.suite101....ith_movewindow

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Je rejoins ikeas: tu veux dire quoi par déplacer ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Par défaut
    Désolé effectivement je veux bien par "déplacer" : mettre la fenêtre de dialogue à une certaine position à l'écran.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    ben utilise les api win32 que je t'ai indiqué

    ceci etant ca risque de poser un legé problème puisque pour afficher la fenêtre du openfiledialog il faut faut un showdialog (qui bloque ton appli) donc tu peux pas changer la position ni avant ni après ....

    en creusant avec netreflector je me demande si le mieux serait pas de deriver la classe directement et soit de surcharger rundialog, soit de surcharger runfiledialog mais a mon avis ca va pas etre simple

    pour info voici le rundialog
    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
    35
    36
    37
    38
    39
    40
    41
    42
     
    [SecurityCritical]
    protected override bool RunDialog(IntPtr hwndOwner)
    {
        bool flag;
        NativeMethods.WndProc proc = new NativeMethods.WndProc(this.HookProc);
        NativeMethods.OPENFILENAME_I ofn = new NativeMethods.OPENFILENAME_I();
        try
        {
            this._charBuffer = NativeMethods.CharBuffer.CreateBuffer(0x2000);
            if (this._fileNames != null)
            {
                this._charBuffer.PutString(this._fileNames[0]);
            }
            ofn.lStructSize = Marshal.SizeOf(typeof(NativeMethods.OPENFILENAME_I));
            ofn.hwndOwner = hwndOwner;
            ofn.hInstance = IntPtr.Zero;
            ofn.lpstrFilter = MakeFilterString(this._filter, this.DereferenceLinks);
            ofn.nFilterIndex = this._filterIndex;
            ofn.lpstrFile = this._charBuffer.AllocCoTaskMem();
            ofn.nMaxFile = this._charBuffer.Length;
            ofn.lpstrInitialDir = this._initialDirectory.Value;
            ofn.lpstrTitle = this._title.Value;
            ofn.Flags = this.Options | 0x880020;
            ofn.lpfnHook = proc;
            ofn.FlagsEx = 0x1000000;
            if ((this._defaultExtension != null) && this.AddExtension)
            {
                ofn.lpstrDefExt = this._defaultExtension;
            }
            flag = this.RunFileDialog(ofn);
        }
        finally
        {
            this._charBuffer = null;
            if (ofn.lpstrFile != IntPtr.Zero)
            {
                Marshal.FreeCoTaskMem(ofn.lpstrFile);
            }
        }
        return flag;
    }

Discussions similaires

  1. comment déplacer un fichier journal?
    Par kalari dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/01/2006, 17h06
  2. Comment déplacer des fichiers sous perl ?
    Par Ickou dans le forum Langage
    Réponses: 6
    Dernier message: 10/11/2005, 12h17
  3. [Bouton] Comment déplacer un bouton en fonction du scrolling
    Par Kylen dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/08/2005, 12h25
  4. Comment déplacer un élément de dessin
    Par stof dans le forum MFC
    Réponses: 2
    Dernier message: 20/04/2005, 14h03
  5. [Excel] Comment déplacer un feuillet ?
    Par KarMa_CoMa dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/03/2005, 11h27

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