2014-04-13 38 views
0

我有在PowerShell中組合框下面的代碼: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返回一個空值,但我不明白爲什麼。我應該這樣做嗎?

回答

1

SelectedValueSelectedText只有當你在ComboBox對象到任何項目的屬性,其中包括價值觀和displaytexts有ValueMemberDisplayMember工作。

由於您是Item,它只是一個沒有任何屬性的字符串對象,並且您還沒有指定上面的屬性,所以您需要通過獲取Item本身來訪問該值。

一個簡單的切換到$portName = $cbxPort.SelectedItem應該做的伎倆。

1

添加到弗羅德F.

$cbxPort.Add_SelectionChanged({ 
    $portName = $cbxPort.SelectedItem 
    Write-Host $portName 
}) 

嘗試Add_SelectionChanged