Question Petit problème avec Form

Plus d'informations
il y a 10 ans 2 mois #21232 par thibault
Petit problème avec Form a été créé par thibault
Bonjour à tous,
J'ai comme projet de créer un script qui va déterminer si les ordinateurs qui sont reliés aux réseaux de l'entreprise sont bien des PC à nous. Si ce n'est un PC n'est pas à nous alors le script nous envoie un mail (service informatique). Donc ce script est fait et il est fonctionnel (reste un tout petit bug à corriger^^). Mais pour faciliter l'administration du script à mes collègues j'ai décidé de faire une petite interface graphique qui va permettre de faire des modifications, comme rajouter un destinataire dans le mail, ajouter un VLAN à scanner...etc.

Et donc j'ai commencé à faire ça :
[code:1]

#region MainWindow
[reflection.assembly]::loadwithpartialname(\"System.Windows.Forms\"«») | Out-Null
[reflection.assembly]::loadwithpartialname(\"System.Drawing\"«») | Out-Null

#Main Window Parameters
$mainWindow = New-Object System.Windows.Forms.Form
$mainWindow.Size = New-Object System.Drawing.Size(620,420)
$mainWindow.StartPosition = \"CenterScreen\"
$mainWindow.Text = \"Sentinet\"

#region Menu
$Menu = New-Object System.Windows.Forms.MenuStrip

#region ARP menu
$elementsArp = New-Object System.Windows.Forms.ToolStripMenuItem(’ARP’)

#SSH-Session Elements
$elementArp_1 = New-Object System.Windows.Forms.ToolStripMenuItem(’Gestion de SSH-Session’)
$sElementArp_1 = New-Object System.Windows.Forms.ToolStripMenuItem(’Modifier la configuration’)

#VLAN Elements
$elementArp_2 = New-Object System.Windows.Forms.ToolStripMenuItem(’Gestion des VLANS’)
$sElementArp_2 = New-Object System.Windows.Forms.ToolStripMenuItem(’Ajouter un VLAN’)
$sElementArp_3 = New-Object System.Windows.Forms.ToolStripMenuItem(’Supprimer un VLAN’)

#Add Elements ARP in menu
#SSH-Session
[void]$elementsArp.DropDownItems.Add($elementArp_1)
[void]$elementArp_1.DropDownItems.Add($sElementArp_1)
#VLAN
[void]$elementsArp.DropDownItems.Add($elementArp_2)
[void]$elementArp_2.DropDownItems.Add($sElementArp_2)
[void]$elementArp_2.DropDownItems.Add($sElementArp_3)

[void]$Menu.Items.Add($elementsArp)
#endregion

#region DHCP menu
$elementsDhcp = New-Object System.Windows.Forms.ToolStripMenuItem(’DHCP’)

$elementDhcp_1 = New-Object System.Windows.Forms.ToolStripMenuItem(’Gestion des Scopes’)
$sElementDhcp_1 = New-Object System.Windows.Forms.ToolStripMenuItem(’Ajouter un Scope’)
$sElementDhcp_2 = New-Object System.Windows.Forms.ToolStripMenuItem(’Supprimer un Scope’)

#Add Elements DHCP in menu
[void]$elementsDhcp.DropDownItems.Add($elementDhcp_1)
[void]$elementDhcp_1.DropDownItems.Add($sElementDhcp_1)
[void]$elementDhcp_1.DropDownItems.Add($sElementDhcp_2)

[void]$Menu.Items.Add($elementsDhcp)
#endregion

#region Exclusion menu
$elementsExclusion = New-Object System.Windows.Forms.ToolStripMenuItem(’Exclusions’)

$elementExclusion_1 = New-Object System.Windows.Forms.ToolStripMenuItem(’Gestion des Exclusions’)
$sElementExclusion_1 = New-Object System.Windows.Forms.ToolStripMenuItem(’Ajouter une Exclusion’)
$sElementExclusion_2 = New-Object System.Windows.Forms.ToolStripMenuItem(’Supprimer une Exclusion’)

#Add Elements Exclusion in menu
[void]$elementsExclusion.DropDownItems.Add($elementExclusion_1)
[void]$elementExclusion_1.DropDownItems.Add($sElementExclusion_1)
[void]$elementExclusion_1.DropDownItems.Add($sElementExclusion_2)

[void]$Menu.Items.Add($elementsExclusion)
#endregion

#region Mail menu
$elementsMail = New-Object System.Windows.Forms.ToolStripMenuItem(’Mail’)

#Mail Elements
$elementMail_1 = New-Object System.Windows.Forms.ToolStripMenuItem(’Modifier la configuration’)

#Add Element Mail in menu
[void]$elementsMail.DropDownItems.Add($elementMail_1)
[void]$Menu.Items.Add($elementsMail)
#endregion

#Output Menu
$mainWindow.Controls.Add($Menu)
#endregion


#region Event management
#region event ARP
#region SSH-Session
$elementARPSSHSession_OnClick={
#region validation
#Button OK
$okButton = New-Object System.Windows.Forms.Button
$okButton.Size = New-Object System.Drawing.Size(120,40)
$okButton.Location = New-Object System.Drawing.Size(240,320)
$okButton.Text = \"OK\"
$mainWindow.Controls.Add($okButton)
#endregion

#region Event on click on OK
$okButton_OnClick={}
$okButton.add_Click($okButton_OnClick)
#endregion
}
$sElementArp_1.add_Click($elementARPSSHSession_OnClick)
#endregion

#region Add Vlan
$addVlan_OnClick={
#region validation
#Button OK
$okButton = New-Object System.Windows.Forms.Button
$okButton.Size = New-Object System.Drawing.Size(120,40)
$okButton.Location = New-Object System.Drawing.Size(240,320)
$okButton.Text = \"OK\"
$mainWindow.Controls.Add($okButton)
#endregion

#region Event on click on OK
$okButton_OnClick={}
$okButton.add_Click($okButton_OnClick)
#endregion
}
$sElementArp_2.add_Click($addVlan_OnClick)
#endregion

#region remove Vlan
$removeVlan_OnClick={
#region validation
#Button OK
$okButton = New-Object System.Windows.Forms.Button
$okButton.Size = New-Object System.Drawing.Size(120,40)
$okButton.Location = New-Object System.Drawing.Size(240,320)
$okButton.Text = \"OK\"
$mainWindow.Controls.Add($okButton)
#endregion

#region Event on click on OK
$okButton_OnClick={}
$okButton.add_Click($okButton_OnClick)
#endregion
}
$sElementArp_3.add_Click($removeVlan_OnClick)
#endregion
#endregion

#region event DHCP

#region Add Scope
$addScope_OnClick={
#region validation
#Button OK
$okButton = New-Object System.Windows.Forms.Button
$okButton.Size = New-Object System.Drawing.Size(120,40)
$okButton.Location = New-Object System.Drawing.Size(240,320)
$okButton.Text = \"OK\"
$mainWindow.Controls.Add($okButton)
#endregion

#region Event on click on OK
$okButton_OnClick={}
$okButton.add_Click($okButton_OnClick)
#endregion
}
$sElementDhcp_1.add_Click($addScope_OnClick)
#endregion

#region remove Scope
$removeScope_OnClick={
#region validation
#Button OK
$okButton = New-Object System.Windows.Forms.Button
$okButton.Size = New-Object System.Drawing.Size(120,40)
$okButton.Location = New-Object System.Drawing.Size(240,320)
$okButton.Text = \"OK\"
$mainWindow.Controls.Add($okButton)
#endregion

#region Event on click on OK
$okButton_OnClick={}
$okButton.add_Click($okButton_OnClick)
#endregion
}
$sElementDhcp_2.add_Click($removeScope_OnClick)
#endregion
#endregion

#region Event Mail
$elementsMail_OnClick={
#region Title
$mailTitle = New-Object System.Windows.Forms.Label
$mailTitle.Size = New-Object System.Drawing.Size(200,15)
$mailTitle.Location = New-Object System.Drawing.Size(30,35)
$mailTitle.Text = \"Mail > Modifier la configuration\"
$mainWindow.Controls.Add($mailTitle)
#endregion

#region To
#Label address To
$mailToLabel = New-Object System.Windows.Forms.Label
$mailToLabel.Size = New-Object System.Drawing.Size(150,15)
$mailToLabel.Location = New-Object System.Drawing.Size(110,60)
$mailToLabel.Text = \"Destinataire(s)\"
$mainWindow.Controls.Add($mailToLabel)
#TextBox mail address To
$mailToTextBox = New-Object System.Windows.Forms.TextBox
$mailToTextBox.Size = New-Object System.Drawing.Size(400,15)
$mailToTextBox.Location = New-Object System.Drawing.Size(110,80)
$mainWindow.Controls.Add($mailToTextBox)
#endregion

#region From
#Label address From
$mailFromLabel = New-Object System.Windows.Forms.Label
$mailFromLabel.Size = New-Object System.Drawing.Size(150,15)
$mailFromLabel.Location = New-Object System.Drawing.Size(110,120)
$mailFromLabel.Text = \"Adresse mail de Sentinet\"
$mainWindow.Controls.Add($mailFromLabel)
#TextBox mail address From
$mailFromTextBox = New-Object System.Windows.Forms.TextBox
$mailFromTextBox.Size = New-Object System.Drawing.Size(400,15)
$mailFromTextBox.Location = New-Object System.Drawing.Size(110,140)
$mainWindow.Controls.Add($mailFromTextBox)
#endregion

#region Subject
#Label subject
$mailSubjectLabel = New-Object System.Windows.Forms.Label
$mailSubjectLabel.Size = New-Object System.Drawing.Size(150,15)
$mailSubjectLabel.Location = New-Object System.Drawing.Size(110,180)
$mailSubjectLabel.Text = \"Sujet du mail\"
$mainWindow.Controls.Add($mailSubjectLabel)
#TextBox subject
$mailSubjectLabel = New-Object System.Windows.Forms.TextBox
$mailSubjectLabel.Size = New-Object System.Drawing.Size(400,15)
$mailSubjectLabel.Location = New-Object System.Drawing.Size(110,200)
$mainWindow.Controls.Add($mailSubjectLabel)
#endregion

#region smtp-server
#Label address smtp-server
$smtpServerLabel = New-Object System.Windows.Forms.Label
$smtpServerLabel.Size = New-Object System.Drawing.Size(150,15)
$smtpServerLabel.Location = New-Object System.Drawing.Size(110,240)
$smtpServerLabel.Text = \"Adresse du serveur SMTP\"
$mainWindow.Controls.Add($smtpServerLabel)
#TextBox address smtp-server
$smtpServerTextBox = New-Object System.Windows.Forms.TextBox
$smtpServerTextBox.Size = New-Object System.Drawing.Size(400,15)
$smtpServerTextBox.Location = New-Object System.Drawing.Size(110,260)
$mainWindow.Controls.Add($smtpServerTextBox)
#endregion

#region validation
#Button OK
$okButton = New-Object System.Windows.Forms.Button
$okButton.Size = New-Object System.Drawing.Size(120,40)
$okButton.Location = New-Object System.Drawing.Size(240,320)
$okButton.Text = \"OK\"

$mainWindow.Controls.Add($okButton)


#endregion

#region Event on click on OK
$okButton_OnClick={}
$okButton.add_Click($okButton_OnClick)
#endregion
}

$elementMail_1.add_Click($elementsMail_OnClick)
#endregion
#endregion

#output Window
$mainWindow.ShowDialog()| Out-Null
[/code:1]

Mais quand je vais du contenu de l'onglet mail à un autre menu, cela laisse l'affichage des Labels, TextBox... Et je n'arrive pas à résoudre le souci ... Avez une petit solution à mon problème ?


Merci d'avance,:cheer:<br><br>Message édité par: thibaultcn, à: 6/01/16 14:11

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 2 mois #21234 par Laurent Dardenne
Salut,
tu utilises une seule zone d'affichage pour tes composants. Soit tu utilises + zones à l'aide d'onglets soit tu supprimes proprement le contenu existant avant de redessiner le nouveau contenu.

Après avoir sélectionné le menu mail :
[code:1]foreach ($C in $mainWindow.Controls) {$C.Text}[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.090 secondes
Propulsé par Kunena