Partage
  • Partager sur Facebook
  • Partager sur Twitter

[powershell GUI] problèmes linklabels

problèmes linklabel dans une boucle for

Sujet résolu
    14 septembre 2019 à 16:04:53

    Bonjour à vous.

    J'ai besoin d'aide car je n'arrive pas à instancier des "linklabels" en série via une boucle. Les URL (vers mes fichiers locaux ne persistent pas à l’exécution.

    Donc en fait, j'ai un bouton ($Button) qui, au clic, récupère tous les fichiers correspondant à un schémas ($pattern), et est censé m'afficher la liste sous forme de liens clickables ($LinkLabel)  dans ma fenetre principale de type Form ($main_form) afin que je puisses cliquer dessus directement pour ouvrir les fichiers en question avec la directive (add_Click({[system.Diagnostics.Process]::start).

    J'ai essayer pas mal de façons de faire, avec des variables globales, des arrays, des arrays globaux, mais rien n'y fait, les variables d'URL ne persistent pas à l’exécution et les liens ne pointent jamais vers les fichiers désirés.

    Je ne suis pas expert en powershell et j'ai peut-être mal fait quelque chose, c'est pour cela que je vous demande votre aide.

    Merci d'avance.

    $pattern="radisgris"
    $Button.Add_Click({
    	$searchlist=gci -Path $path -recurse | where { ! $_.PSIsContainer } | Where{$_.Name -match $pattern}
    	$PixelsVertical=130
    
    	ForEach($result in $searchlist){
    		$LinkLabel = New-Object System.Windows.Forms.LinkLabel
    		$LinkLabel.Location = New-Object System.Drawing.Size(10,$PixelsVertical)
    		$LinkLabel.Size = New-Object System.Drawing.Size(600,15)
    		$LinkLabel.LinkColor = "#0074A2"
    		$LinkLabel.ActiveLinkColor = "#114C7F"
    		$LinkLabel.Text = $result.Name
    		
    		$locurl = $result.FullName | Out-String
    		
    		$LinkLabel.add_Click({[system.Diagnostics.Process]::start("explorer.exe", $locurl)})
    		$main_form.Controls.Add($LinkLabel)
    
    		$PixelsVertical += 15
    	}
    })



    Voila mon bout de code:



    • Partager sur Facebook
    • Partager sur Twitter

    Find various resources, tuturials and online tools at: https://finseckto.com

      17 septembre 2019 à 21:19:11

      Bon...pas de réponses...

      Néanmoins j'ai trouvé la solution donc je la poste pour la postérité..

      Enfait il fallait ajouter mon information dans le champ tag du linklabel, puis l'appeler dans la sous fonction add click via une directive param.

      Donc je me remercie moi-même! les radis sont les meilleurs! :)

      Je met le sujet en fermé.

      $pattern="radisgris"
      $Button.Add_Click({
          $searchlist=gci -Path $path -recurse | where { ! $_.PSIsContainer } | Where{$_.Name -match $pattern}
          $PixelsVertical=130
       
          ForEach($result in $searchlist){
              $LinkLabel = New-Object System.Windows.Forms.LinkLabel
              $LinkLabel.Location = New-Object System.Drawing.Size(10,$PixelsVertical)
              $LinkLabel.Size = New-Object System.Drawing.Size(600,15)
              $LinkLabel.LinkColor = "#0074A2"
              $LinkLabel.ActiveLinkColor = "#114C7F"
              $LinkLabel.Text = $result.Name
              $linkLabel.Tag = $result.FullName
      	$LinkLabel.add_Click({param($Sender) & explorer.exe $Sender.Tag })
              $main_form.Controls.Add($LinkLabel)
              $PixelsVertical += 15
          }
      })



      • Partager sur Facebook
      • Partager sur Twitter

      Find various resources, tuturials and online tools at: https://finseckto.com

        19 septembre 2019 à 12:25:19

        Je pense qu'ici on manque un peu de compétence PowerShell. ;-)

        Merci pour ce retour.

        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
          3 novembre 2019 à 14:27:58

          Dommage qu'il n'y ai pas une section dediée powershell. Je sais qu'en règle générale Windows c'est le cancer...mais il est certain que ça en ferai plus d'un heureux ;).

          Bon vent.

          • Partager sur Facebook
          • Partager sur Twitter

          Find various resources, tuturials and online tools at: https://finseckto.com

          [powershell GUI] problèmes linklabels

          × 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