如何将PowerShell命令的执行结果填充到ComboBox控件中
错误点说明
- 误用
Format-List(别名fl)处理输出:所有Format-*前缀的cmdlet都是用来生成供人阅读的格式化文本,输出的对象已经不是原始的RDSessionCollection实例,无法正常提取CollectionName属性值。 - 循环变量名书写错误:你将查询结果存储在
$Collections变量中,但foreach循环的迭代源写为了$Collection,是空变量,不会进入循环逻辑。
修正后代码
$ButtonCollectionSearch.Add_Click({ $name = $textboxlogonname.text $ComboBox = New-Object System.Windows.Forms.ComboBox $ComboBox.Width = 400 # 直接提取CollectionName属性的原始值,不要用Format类cmdlet $Collections = Get-RDSessionCollection | Select-Object -ExpandProperty CollectionName Foreach ($Collection in $Collections) { $ComboBox.Items.Add($Collection); } $ComboBox.Location = New-Object System.Drawing.Point(120, 10) $main_form.Controls.Add($ComboBox) })
可选优化
不需要循环逐个添加,可以直接批量插入所有项:
$ComboBox.Items.AddRange($Collections)
内容的提问来源于stack exchange,提问作者Fluure
相关产品推荐
相关产品推荐

