Question Petit problème avec Form
- thibault
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
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,
<br><br>Message édité par: thibaultcn, à: 6/01/16 14:11
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,
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 2 mois #21234
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Petit problème avec Form
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]
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.087 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Petit problème avec Form