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

Scripts/Batch Discussion :

Rafraîchir une form après étirement [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Rafraîchir une form après étirement
    Bonjour, je voudrais rafraîchir une form après étirement afin que le bouton qu'elle contient conserve les proportions que je lui ai fixé initialement. Savez-vous comment faire cela, svp?

    Code POWERSHELL : 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
    Function Button_Click()
     
    Function Generate-Form {
     
        Add-Type -AssemblyName System.Windows.Forms    
        Add-Type -AssemblyName System.Drawing
     
        # Build Form
        $Form = New-Object System.Windows.Forms.Form
        $Form.Text = "My Form"
        $Form.Size = New-Object System.Drawing.Size(200,200)
        $Form.StartPosition = "CenterScreen"
        $Form.Topmost = $True
     
        $ButtonLocX = $Form.Width/6
        $ButtonLocY = $Form.Height/6
        $ButtonX = $Form.Width/2
        $ButtonY= $Form.Width/9
     
        # Add Button
        $Button = New-Object System.Windows.Forms.Button
        $Button.Location = New-Object System.Drawing.Size($ButtonLocX,$ButtonLocY)
        $Button.Size = New-Object System.Drawing.Size($ButtonX,$ButtonY)
        $Button.Text = "Show Dialog Box"
        $Form.Controls.Add($Button)
     
        #Show the Form 
        $form.ShowDialog()| Out-Null 
     
    } #End Function 
     
    #Call the Function 
    Generate-Form

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Ce qu'il faudrait c'est un positionnement dynamique, c'est à dire que les coordonnée X,Y du bouton soient relatives aux dimensions de son conteneur.

    Ex.:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $button ($System_Drawing_Point.X) = $TabControl ($System_Drawing_Size.Width/4)

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Le système d'ancrage ne te va pas/plus ?

    Essaie d'utiliser les objet approprier même si Powershell est (trop) permissif.
    Location est de type Point et pas Size

    Pour faire ce que tu souhaites utilise évènement Resize
    Code powershell : 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
    Function Generate-Form {
     
        Add-Type -AssemblyName System.Windows.Forms    
        Add-Type -AssemblyName System.Drawing
     
        # Build Form
        $Form = New-Object System.Windows.Forms.Form
        $Form.Text = "My Form"
        $Form.Size = New-Object System.Drawing.Size(200,200)
        $Form.StartPosition = "CenterScreen"
        $Form.Topmost = $True
     
        $ButtonLocX = $Form.Width/6
        $ButtonLocY = $Form.Height/6
        $ButtonX = $Form.Width/2
        $ButtonY= $Form.Width/9
     
        # Add Button
        $Button = New-Object System.Windows.Forms.Button
        $Button.Location = New-Object System.Drawing.Point($ButtonLocX,$ButtonLocY)
        $Button.Size = New-Object System.Drawing.Size($ButtonX,$ButtonY)
        $Button.Text = "Show Dialog Box"
        $Form.Controls.Add($Button)
     
     
        $Form.Add_Resize({
            $ButtonLocX = $Form.Width/6
            $ButtonLocY = $Form.Height/6
            $Button.Location = New-Object System.Drawing.Point($ButtonLocX, $ButtonLocY)
        })
     
     
        #Show the Form 
        $form.ShowDialog()| Out-Null 
     
        $Button | gm
     
     
    } #End Function 
     
    #Call the Function 
    Generate-Form

    PS : Si je voulais répondre précisément à ta demande, je te conseillerai l’événement Resizeend

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par ericlm128 Voir le message

    PS : Si je voulais répondre précisément à ta demande, je te conseillerai l’événement Resizeend
    Merci beaucoup pour ce code. Dans le mien, j'ai une fenêtre qui contient un Tab qui contient des boutons alignés.

    J'ai appliqué ce code et ça marche :

    Code PowerShell : 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
    $ButtonLocX = $HomeTab.Width/5
    $ButtonLocY = $HomeTab.Height/20
    $ButtonX = $HomeTab.Width/(8/3)
    $ButtonY= $HomeTab.Height/40
     
    $myButton .Location = New-Object System.Drawing.Point($ButtonLocX,$ButtonLocY)
    $myButton .Size = New-Object System.Drawing.Size($ButtonX,$ButtonY)
    $myButton .ForeColor = "Green"
    $myButton .BackColor = "White"
    $myButton .Text = "mon Texte"
    $myButton .add_Click({OpenFolder})
    $HomeTab.Controls.Add($myButton )
     
     
    $HomeTab.Add_Resize({
            $ButtonX = $HomeTab.Width/5
            $ButtonY= $HomeTab.Height/20
            $ButtonLocX = $HomeTab.Width/(8/3)
            $ButtonLocY = $HomeTab.Height/40
            $myButton .Size = New-Object System.Drawing.Size($ButtonX,$ButtonY)
            $myButton .Location = New-Object System.Drawing.Point($ButtonLocX, $ButtonLocY)
        })

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

Discussions similaires

  1. [C#] Réouverture d'une form après sa fermeture
    Par pagugu dans le forum Windows Forms
    Réponses: 6
    Dernier message: 14/03/2011, 11h54
  2. Réponses: 4
    Dernier message: 23/02/2011, 21h41
  3. [PPT-2007] Changement de couleur d'une forme après un clic
    Par 33_nico dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 09/02/2010, 23h24
  4. Rafraîchir une form depuis un autre thread
    Par dens19 dans le forum C#
    Réponses: 4
    Dernier message: 23/11/2009, 23h29
  5. modifier une forme apres un login
    Par fourquet dans le forum Delphi
    Réponses: 1
    Dernier message: 14/12/2006, 13h51

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