Multiple [System.Windows.Forms.DialogResult] in one Script

%3CLINGO-SUB%20id%3D%22lingo-sub-2165212%22%20slang%3D%22en-US%22%3EMultiple%20%5BSystem.Windows.Forms.DialogResult%5D%20in%20one%20Script%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2165212%22%20slang%3D%22en-US%22%3E%3CP%3EI%20have%20a%20script%20like%20this%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-powershell%22%3E%3CCODE%3Edo%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20Add-Type%20-AssemblyName%20System.Windows.Forms%0A%20%20%20%20%20%20%20%20Add-Type%20-AssemblyName%20System.Drawing%0A%0A%20%20%20%20%20%20%20%20%23select%20region%0A%20%20%20%20%20%20%20%20%24form_region%20%3D%20New-Object%20System.Windows.Forms.Form%0A%20%20%20%20%20%20%20%20%24form_region.Text%20%3D%20'Country'%0A%20%20%20%20%20%20%20%20%24form_region.Size%20%3D%20New-Object%20System.Drawing.Size(300%2C200)%0A%20%20%20%20%20%20%20%20%24form_region.StartPosition%20%3D%20'CenterScreen'%0A%20%20%20%20%20%20%20%20%24form_region.TopMost%20%3D%20%24true%0A%0A%20%20%20%20%20%20%20%20%24okButton_region%20%3D%20New-Object%20System.Windows.Forms.Button%0A%20%20%20%20%20%20%20%20%24okButton_region.Location%20%3D%20New-Object%20System.Drawing.Point%20(75%2C120)%0A%20%20%20%20%20%20%20%20%24okButton_region.Size%20%3D%20New-Object%20System.Drawing.Size%20(75%2C23)%0A%20%20%20%20%20%20%20%20%24okButton_region.Text%20%3D%20%22OK%22%0A%20%20%20%20%20%20%20%20%24okButton_region.DialogResult%20%3D%20%5BSystem.Windows.Forms.DialogResult%5D%3A%3AOK%0A%20%20%20%20%20%20%20%20%24form_region.AcceptButton%20%3D%20%24okButton_region%0A%20%20%20%20%20%20%20%20%24form_region.Controls.Add(%24okButton_region)%0A%0A%20%20%20%20%20%20%20%20%24cancelButton_region%20%3D%20New-Object%20System.Windows.Forms.Button%0A%20%20%20%20%20%20%20%20%24cancelButton_region.Location%20%3D%20New-Object%20System.Drawing.Point%20(150%2C120)%0A%20%20%20%20%20%20%20%20%24cancelButton_region.Size%20%3D%20New-Object%20System.Drawing.Size%20(75%2C23)%0A%20%20%20%20%20%20%20%20%24cancelButton_region.Text%20%3D%20%22Cancel%22%0A%20%20%20%20%20%20%20%20%24cancelButton_region.DialogResult%20%3D%20%5BSystem.Windows.Forms.DialogResult%5D%3A%3ACancel%0A%20%20%20%20%20%20%20%20%24form_region.CancelButton%20%3D%20%24cancelButton_region%0A%20%20%20%20%20%20%20%20%24form_region.Controls.Add(%24cancelButton_region)%0A%0A%20%20%20%20%20%20%20%20%24label_region%20%3D%20New-Object%20System.Windows.Forms.Label%0A%20%20%20%20%20%20%20%20%24label_region.Location%20%3D%20New-Object%20System.Drawing.Point%20(10%2C20)%0A%20%20%20%20%20%20%20%20%24label_region.Size%20%3D%20New-Object%20System.Drawing.Size%20(280%2C20)%0A%20%20%20%20%20%20%20%20%24label_region.Text%20%3D%20%22Please%20make%20a%20selection%20from%20the%20list%20below%3A%22%0A%20%20%20%20%20%20%20%20%24form_region.Controls.Add(%24label_region)%0A%0A%20%20%20%20%20%20%20%20%24Box_region%20%3D%20New-Object%20System.Windows.Forms.ListBox%0A%20%20%20%20%20%20%20%20%24Box_region.Location%20%3D%20New-Object%20System.Drawing.Point%20(10%2C40)%0A%20%20%20%20%20%20%20%20%24Box_region.Size%20%3D%20New-Object%20System.Drawing.Size%20(260%2C70)%0A%0A%20%20%20%20%20%20%20%20%5Bvoid%5D%20%24Box_region.Items.AddRange(%40(%22APAC%22%2C%22EU%22%2C%22LATAM%22%2C%22NA%22))%0A%0A%20%20%20%20%20%20%20%20%24form_region.Controls.Add(%24Box_region)%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20do%0A%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24result_region%20%3D%20%24form_region.ShowDialog()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(%24Box_region.SelectedIndices.Count%20-lt%201%20-and%20%24result_region%20-eq%20%5BSystem.Windows.Forms.DialogResult%5D%3A%3AOK)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5BSystem.Windows.Forms.MessageBox%5D%3A%3AShow(%22Nothing%20was%20selected%2C%20please%20select%20a%20region%20first%22%2C%22WARNING%22%2C0%2C%5BSystem.Windows.Forms.MessageBoxIcon%5D%3A%3AWarning)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7Duntil%20((%24result_region%20-eq%20%5BSystem.Windows.Forms.DialogResult%5D%3A%3AOK%20-and%20%24Box_region.SelectedIndices.Count%20-ge%201)%20-or%20%24result_region%20-eq%20%5BSystem.Windows.Forms.DialogResult%5D%3A%3ACancel)%0A%24inOrder%20%3D%20%5BSystem.Windows.Forms.MessageBox%5D%3A%3AShow(%22Location%3A%24selected_location%20%60n%60nName%3A%24Mailbox_Name%60n%60nEmail%3A%24Mailbox_EmailAt%22%2C%22Everything's%20alright%3F%22%2C4%2C%5BSystem.Windows.Forms.MessageBoxIcon%5D%3A%3AQuestion)%0A%20%20%20%20%7Duntil(%24inOrder%20-eq%20%5BSystem.Windows.Forms.DialogResult%5D%3A%3AYes)%20-or%20%5BSystem.Windows.Forms.DialogResult%5D%3A%3ACancel%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2165212%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EWindows%20PowerShell%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Contributor

I have a script like this:

 

do
    {
        Add-Type -AssemblyName System.Windows.Forms
        Add-Type -AssemblyName System.Drawing

        #select region
        $form_region = New-Object System.Windows.Forms.Form
        $form_region.Text = 'Country'
        $form_region.Size = New-Object System.Drawing.Size(300,200)
        $form_region.StartPosition = 'CenterScreen'
        $form_region.TopMost = $true

        $okButton_region = New-Object System.Windows.Forms.Button
        $okButton_region.Location = New-Object System.Drawing.Point (75,120)
        $okButton_region.Size = New-Object System.Drawing.Size (75,23)
        $okButton_region.Text = "OK"
        $okButton_region.DialogResult = [System.Windows.Forms.DialogResult]::OK
        $form_region.AcceptButton = $okButton_region
        $form_region.Controls.Add($okButton_region)

        $cancelButton_region = New-Object System.Windows.Forms.Button
        $cancelButton_region.Location = New-Object System.Drawing.Point (150,120)
        $cancelButton_region.Size = New-Object System.Drawing.Size (75,23)
        $cancelButton_region.Text = "Cancel"
        $cancelButton_region.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
        $form_region.CancelButton = $cancelButton_region
        $form_region.Controls.Add($cancelButton_region)

        $label_region = New-Object System.Windows.Forms.Label
        $label_region.Location = New-Object System.Drawing.Point (10,20)
        $label_region.Size = New-Object System.Drawing.Size (280,20)
        $label_region.Text = "Please make a selection from the list below:"
        $form_region.Controls.Add($label_region)

        $Box_region = New-Object System.Windows.Forms.ListBox
        $Box_region.Location = New-Object System.Drawing.Point (10,40)
        $Box_region.Size = New-Object System.Drawing.Size (260,70)

        [void] $Box_region.Items.AddRange(@("APAC","EU","LATAM","NA"))

        $form_region.Controls.Add($Box_region)
        
        do
           {
               $result_region = $form_region.ShowDialog()
               if ($Box_region.SelectedIndices.Count -lt 1 -and $result_region -eq [System.Windows.Forms.DialogResult]::OK)
                   {
                       [System.Windows.Forms.MessageBox]::Show("Nothing was selected, please select a region first","WARNING",0,[System.Windows.Forms.MessageBoxIcon]::Warning)
                   }
           }until (($result_region -eq [System.Windows.Forms.DialogResult]::OK -and $Box_region.SelectedIndices.Count -ge 1) -or $result_region -eq [System.Windows.Forms.DialogResult]::Cancel)
$inOrder = [System.Windows.Forms.MessageBox]::Show("Location:$selected_location `n`nName:$Mailbox_Name`n`nEmail:$Mailbox_EmailAt","Everything's alright?",4,[System.Windows.Forms.MessageBoxIcon]::Question)
    }until($inOrder -eq [System.Windows.Forms.DialogResult]::Yes) -or [System.Windows.Forms.DialogResult]::Cancel

 

so what I hoped from the "until" Loop, is that if I press "Yes" in the final DialogWindow the Script gets completed or if I press "Cancel" somewhere in the loop, it just gets canceled

 

With this solution, the script gets terminated even when I press "No" at the end BUT when I press "No" , the script should just complete from top again.

 

Greetings

Yannik Schulz

 

 

0 Replies