Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème scope variable Powershell

Sujet résolu
    14 octobre 2020 à 13:59:41

    Bonjour!

    essai de sortir la variable $ouvrir1.FileName de $bouton1.add_click( mais ca n'a pas l'air d'être une fonction et le copier dans $chemin

    J'ai tenté de le faire comme en langage C mais ca ne fonctionne pas pareil j'ai l'impression....

    Quelqu'un aurait une explication? ou une autre méthode?

    [string]$chemin

    $bouton1 = New-Object Windows.Forms.Button
    $bouton1.Location = New-Object Drawing.Point 250,100
    $bouton1.Size = New-Object Drawing.Point 80,50
    $bouton1.text = "Parcourir"


    $chemin=$bouton1.add_click({
        #Création d'un objet "ouverture de fichier".
        $ouvrir1 = New-Object System.Windows.Forms.OpenFileDialog

        #Initialisation du chemin par défaut.
        $ouvrir1.initialDirectory = "D:\Documents"

        #Ici on va afficher que les fichiers en ".txt".
        $ouvrir1.filter = "pdf Files (*.pdf)| *.pdf"
       
        #Affiche la fenêtre d'ouverture de fichier.
        $ouvrir1.ShowDialog()

        return $ouvrir1.FileName;
    })

    Merci d'avance!

    • Partager sur Facebook
    • Partager sur Twitter
      14 octobre 2020 à 17:00:30

      A la place du return $ouvrir1.FileName;, tu devrais simplement faire $Sccript:chemin=$ouvrir1.FileName;

      ou peut-être $bouton1.add_click($chemin={ ....})

      une autre possibilité, peut-être meilleure: c'est de déclarer une fonction GetFile (par exemple) qui contient le code et qui serait appeler ensuite dans add_click

      [string]$chemin
      
      $bouton1 = New-Object Windows.Forms.Button
      $bouton1.Location = New-Object Drawing.Point 250,100
      $bouton1.Size = New-Object Drawing.Point 80,50
      $bouton1.text = "Parcourir"
      
      Function GetFile(){
          #Création d'un objet "ouverture de fichier".
          $ouvrir1 = New-Object System.Windows.Forms.OpenFileDialog
      
          #Initialisation du chemin par défaut.
          $ouvrir1.initialDirectory = "D:\Documents"
      
          #Ici on va afficher que les fichiers en ".txt".
          $ouvrir1.filter = "pdf Files (*.pdf)| *.pdf"
         
          #Affiche la fenêtre d'ouverture de fichier.
          $ouvrir1.ShowDialog()
      
          return $ouvrir1.FileName;
      }
      
      $bouton1.add_click({$chemin=GetFile})
      



      • Partager sur Facebook
      • Partager sur Twitter

      Problème scope variable Powershell

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown