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 :

Macro qui ouvre un fichier avec OpenFileDialog et le charge dans l'IDE


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 247
    Points : 106
    Points
    106
    Par défaut Macro qui ouvre un fichier avec OpenFileDialog et le charge dans l'IDE
    Bonjour,

    J'ai un projet en C# avec VS 2010 et j'ai une macro qui demande de choisir un fichier pour le charger par la suite dans l'éditeur de l'IDE, ça fonctionne mais le dialog OpenFileDialog ne s'affiche pas en avant plan je dois presser sur ALT+TAB et le choisr dans la liste pour le faire passer en avant plan. Je fais ça car j'ai des fichiers avec de long chemin et je me souviens pas toujours ou ils sont avec une macro et un répertoire de départ ça va plus vite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Sub Open_Macro_Code_File()
            Dim fd As OpenFileDialog = New OpenFileDialog()
            fd.Title = "Select Macros Code File"
            fd.InitialDirectory = "J:\Documents and Settings\Un long filepath\"
            fd.Filter = "Text files (*.txt)|*.txt|C Sharp files (*.cs)|*.cs |All files (*.*)|*.*"
            fd.DefaultExt = "*.cs"
            fd.FileName = "*.cs"
            fd.FilterIndex = 2
            fd.RestoreDirectory = True
            If fd.ShowDialog() = DialogResult.OK Then
                DTE.ItemOperations.OpenFile(fd.FileName)
                DTE.ActiveDocument.Activate()
            End If
        End Sub
    Essayez la macro et dites moi si le dialog apparait en avant plan, j'utilise Windows XP SP3.

    Quelqu'un a-t-il une explication et une solution ?

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    salut,
    me suis jamais amusé avec les macros mais tente de définir la Form parent de ton Dialog : ".ShowDialog(maVisualStudioForm)"
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 247
    Points : 106
    Points
    106
    Par défaut
    Ok j'ai trouvé

    C'est un bug de Windows voir article suivant http://support.microsoft.com/kb/312877

    voici les modifications à faire

    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
        Sub __Open_Macro_Code_File__()
     
            Dim winptr = New WinWrapper()  
            ...
            If fd.ShowDialog(winptr) = DialogResult.OK Then
            ...        
        End Sub
     
    Ajouter une Class WinWrapper à la fin de votre module
    ...
    EndModule
    '' This class is used to set the proper parent to any UI that you may display from within a macro.
    '' See the AddClassicComRef macro for an example of how this is used
    PublicClass WinWrapper
    Implements System.Windows.Forms.IWin32Window
    OverridableReadOnlyProperty Handle() As System.IntPtr Implements System.Windows.Forms.IWin32Window.Handle
    Get
    Dim iptr AsNew System.IntPtr(DTE.MainWindow.HWnd)
    Return iptr
    EndGet
    EndProperty
    EndClass
    
    Bye.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    "fd.ShowDialog(winptr)"

    tien donc ^^
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

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

Discussions similaires

  1. Macro: Mail qui ouvre un fichier Excel et lance une macro
    Par Lameth dans le forum VBA Outlook
    Réponses: 6
    Dernier message: 15/07/2008, 14h42
  2. Un OpenFileDialog qui ouvre des fichiers ou dossiers
    Par Ziki_s dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/06/2008, 20h17
  3. macro qui ouvre un fichier et execute le reste de la macro
    Par flyhb dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/03/2008, 00h01
  4. [[VBA-E]je cherche une macro sur excel qui ouvre un fichier
    Par macromega dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2007, 09h25
  5. [VBA-E] une macro qui enregistre mon fichier Excel
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/03/2007, 11h47

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