【发布时间】:2020-11-16 04:40:27
【问题描述】:
我正在创建一个带有两个组合框的 powershell GUI。 第一个包含国家,第二个应该根据在第一个组合框中选择的国家/地区填充城市
例如,当在组合框 1 中选择“美国”时,“纽约”、“底特律”和“西雅图”应该出现在组合框 2 中,当在组合框 1 中选择“英格兰”时,“伦敦”和“埃塞克斯”应该出现在combobox2等等
这是我的脚本的一个非常简短的版本:
$Countries=@("USA","England","Canada")
$CitiesUS=@("New York","Detroit","Seattle")
$CitiesEN=@("London","Essex")
$CitiesCA=@("Toronto","Vancouver")
$Form = New-Object System.Windows.Forms.Form
$Form.Size = New-Object System.Drawing.Size(300,300)
$Combobox1 = New-Object System.Windows.Forms.Combobox
$Combobox1.Location = New-Object System.Drawing.Size(26,50)
$Combobox1.Size = New-Object System.Drawing.Size(105,20)
$Combobox1.items.AddRange($Countries)
$combobox2 = New-Object System.Windows.Forms.Combobox
$combobox2.Location = New-Object System.Drawing.Size(143,50)
$combobox2.Size = New-Object System.Drawing.Size(105,20)
$Form.Controls.Add($combobox1)
$Form.Controls.Add($combobox2)
## combobox function
if ($combobox1.SelectedItem -eq ("USA")) {
$combobox2.Items.Clear()
foreach ($City in $CitiesUS) {
$combobox2.Items.Add($City)}
}
$Form.ShowDialog()
为了这个例子,我为一个国家添加了一个简单的 IF 语句,但即使这样也不起作用。 几天来我一直在研究如何做到这一点,但找不到任何东西或无法完全理解某些解决方案。有一些简单的方法可以做到这一点吗?
感谢任何帮助!
【问题讨论】:
-
表单只会在活动期间更新 - 它不会坐在那里检查您的“IF”语句以查看是否有任何更改。为正在更改的第一个组合框添加一个事件,并将您的代码放入该事件以填充第二个组合框。
标签: powershell combobox