我在Powershell中有一个组合框的代码如下:
$cbxPort = New-Object Windows.Forms.ComboBox
$cbxPort.Items.AddRange([System.IO.Ports.SerialPort]::GetPortNames())
$cbxPort.Add_SelectedValueChanged({
$portName = $cbxPort.SelectedText
Write-Host $portName
})
我尝试使用组合框允许用户选择串口。
无论出于何种原因,只打印一个新行。我确定$ cbxPort.SelectedText返回一个空值,但我不明白为什么。我应该这样做吗?
答案 0 :(得分:2)
添加到Frode F。
$cbxPort.Add_SelectionChanged({
$portName = $cbxPort.SelectedItem
Write-Host $portName
})
尝试Add_SelectionChanged
答案 1 :(得分:1)
SelectedValue
和SelectedText
仅在您在组合框对象中具有ValueMember
和DisplayMember
时才适用于包含值和displaytexts的任何项属性。
由于您的Item只是一个没有任何属性的字符串对象,并且您还没有指定上面的属性,您需要通过获取Item本身来访问该值。
简单切换到$portName = $cbxPort.SelectedItem
就可以了。