winforms - powershell combobox items to variable -
i trying create powershell script gui gives user drop list of available drives , when user selects drive , clicks ok script maps drive m:\ cant work out how selected item in combo box passed variable $mapdrive
#list of drives map $drivelist = @("0. dgl_data","1. p1","2. dglfsg3","3. p3 (tpc)","4. p4","6. p6","7. p7","8. p8","9. p9","10. p10","11. p11","12. p12") #displays drive map $mapdrive = convert.tostring($dropdown.selecteditem) function mapdrive { if ($mapdrive -eq $drivelist[0]){ write-output sucess > "c:\users\andy.burton\desktop\practice selector\success.txt"} elseif ($mapdrive -eq $drivelist[1]){ write-output booyah > "c:\users\andy.burton\desktop\practice selector\yes.txt" } else { write-output failure > "c:\users\andy.burton\desktop\practice selector\failed.txt"} } #test function function test { write-output $mapdrive > "c:\users\andy.burton\desktop\practice selector\success.txt" } #function create form function generateform { #define drive selector main form add-type -assemblyname system.windows.forms $dgl = new-object system.windows.forms.form $dgl.text = "dgl practice manager" $dgl.topmost = $true $dgl.backgroundimage = [system.drawing.image]::fromfile("c:\users\andy.burton\desktop\practice selector\images\medical.jpg") $dgl.icon = new-object system.drawing.icon("c:\users\andy.burton\desktop\practice selector\images\medical2.ico") $dgl.width = 600 $dgl.height = 265 $dgl.minimizebox = $false $dgl.maximizebox = $false #label display instuctions $label2 = new-object system.windows.forms.label $label2.text = "select drive" $label2.backcolor = "#e4f3fa" $label2.autosize = $true $label2.width = 25 $label2.height = 10 $label2.location = new-object system.drawing.point(20,28) $label2.font = "microsoft sans serif,10" $dgl.controls.add($label2) #dropdown box selecting practice $dropdown = new-object system.windows.forms.combobox $dropdown.backcolor = "#e4f3fa" $dropdown.dropdownstyle = [system.windows.forms.comboboxstyle]::dropdownlist $dropdown.width = 243 $dropdown.height = 20 $dropdown.location = new-object system.drawing.point(21,73) $dropdown.font = "microsoft sans serif,10" $dropdown.items.addrange($drivelist) $dgl.controls.add($dropdown) #cancel button cancel drive selection $cancelbutton = new-object system.windows.forms.button $cancelbutton.text = "cancel" $cancelbutton.width = 60 $cancelbutton.height = 30 $cancelbutton.location = new-object system.drawing.point(210,120) $cancelbutton.font = "microsoft sans serif,10" $dgl.cancelbutton = $cancelbutton $cancelbutton.add_click({ $dgl.close();[system.windows.forms.application]::exit($null)}) $dgl.controls.add($cancelbutton) #ok button select drive $okbutton = new-object system.windows.forms.button $okbutton.text = "ok" $okbutton.width = 60 $okbutton.height = 30 $okbutton.location = new-object system.drawing.point(140,120) $okbutton.font = "microsoft sans serif,10" $dgl.acceptbutton = $okbutton $mapdrive = convert.tostring($dropdown.selecteditem) #on click call practiceselectedcallback launch application $okbutton.add_click({test ; $dgl.close()}) $dgl.controls.add($okbutton) #display form $dgl.add_shown({$dgl.activate()}) $dgl.showdialog() } generateform i want hide powershell window not gui have tried -window hidden hid
the combobox has several events can tie various things. 1 of events selectedindexchanged. can add event combobox object , update $mapdrive
this code $mapdrive = convert.tostring($dropdown.selecteditem) fire once during initial compile. have use events trigger code changes after compile during runtime.
also, in powershell can use following command [system.windows.forms.combobox] | gm list of methods, , properties of object. can use [system.windows.forms.checkedlistbox].getevents() list of events of object.
Comments
Post a Comment