Winforms 如何在PowerShell中使用button.add\u click函数更新或刷新组合框项?

Winforms 如何在PowerShell中使用button.add\u click函数更新或刷新组合框项?,winforms,powershell,button,combobox,refresh,Winforms,Powershell,Button,Combobox,Refresh,我使用组合框来获取目录。我需要使用按钮更新目录。单击事件 添加类型-AssemblyName System.Windows.Forms [System.Windows.Forms.Application]::EnableVisualStyles $Form=新对象system.Windows.Forms.Form $Form.ClientSize='400400' $Form.TopMost=$false $ComboBox1=新对象system.Windows.Forms.ComboBox $

我使用组合框来获取目录。我需要使用按钮更新目录。单击事件

添加类型-AssemblyName System.Windows.Forms [System.Windows.Forms.Application]::EnableVisualStyles $Form=新对象system.Windows.Forms.Form $Form.ClientSize='400400' $Form.TopMost=$false $ComboBox1=新对象system.Windows.Forms.ComboBox $ComboBox1.width=100 $ComboBox1.height=20 $ComboBox1.location=新对象系统.绘图.点36,60 $ComboBox1.Font='Microsoft无衬线,10' $list=@Get ChildItem-目录。\.Name foreach$lst在$list中{ $ComboBox1.项目。添加$lst } $Button1=新对象system.Windows.Forms.Button $Button1.text=更新 $Button1.width=60 $Button1.高度=30 $Button1.location=新对象系统.绘图.点182,60 $Button1.Font='Microsoft无衬线字体,10' $Button1.添加\单击{ } $Form.controls.AddRange@$ComboBox1,$Button1 $Form.ShowDialog 您正在用以下内容填充组合框

$list=@Get ChildItem-目录。\.Name foreach$lst在$list中{ $ComboBox1.项目。添加$lst } 听起来您希望单击按钮再次执行此操作,这样组合框将包含目录的最新列表。在这种情况下,您的点击事件处理程序应该像这样创建

$Button1.添加\单击{ 从组合框中删除所有项目 $ComboBox1.Items.Clear 重新填充组合框,就像它创建时一样 $list=@Get ChildItem-目录。\.Name foreach$lst在$list中{ $ComboBox1.项目。添加$lst } } 首先调用,这样您就不会得到重复的目录项

顺便说一下,你可以简化这个

$list=@Get ChildItem-目录。\.Name foreach$lst在$list中{ $ComboBox1.项目。添加$lst } …为了这个

$list=@Get ChildItem-目录。\.Name $ComboBox1.Items.AddRange$list …甚至这个

$ComboBox1.0个项目。AddRange@Get-ChildItem-目录。\.名称
你说的更新目录是什么意思?您是否正在更改要同步回文件系统的组合框项?或者您想用最新的目录信息重新填充组合框?我想对组合框项目进行更改,并将其同步回文件系统@BACONSo您想在组合框中选择一个目录,编辑其属性,然后单击按钮将这些更改保存回磁盘吗?要编辑哪些属性?除了ComboBox本身,代码中没有显示/编辑目录属性的控件。我的预期是,一旦单击$Button1,$ComboBox1项将根据目录路径进行更新。由于$ComboBox获取目录的路径已在somtimeSorry中更新,因此我不明白您想做什么。你的评论似乎互相矛盾。您想将表单中的内容应用于目录,还是将目录中的内容应用于表单?无论哪种方式,您似乎需要比这里更多的控件,除非每个目录的名称都是您想要显示的。非常感谢你。太棒了!