2013-01-09 42 views
-1

以此代碼爲例,該函數使用vsphere cmd-let根據列表框中選定的VM檢索CPU編號。輸出是工作到另一個列表框,但我希望能夠將結果輸出到標籤向變量中的標籤添加文本

function fill_updatelistbox 
{ 
$vmlist1 = Get-vm -Name $listBox1.SelectedItem | select NumCPU 
foreach ($vm1 in $vmlist1) 
{ 
$label1.Text($vm1.NumCPU) 
} 
} 


$label1.DataBindings.DefaultDataSourceUpdateMode = 0 
$System_Drawing_Point = New-Object System.Drawing.Point 
$System_Drawing_Point.X = 400 
$System_Drawing_Point.Y = 115 
$label1.Location = $System_Drawing_Point 
$label1.Name = "label1" 
$System_Drawing_Size = New-Object System.Drawing.Size 
$System_Drawing_Size.Height = 23 
$System_Drawing_Size.Width = 100 
$label1.Size = $System_Drawing_Size 
$label1.TabIndex = 0 
$label1.Text = "" 

編輯:下面的代碼使用列表框

function fill_updatelistbox 
{ 
$vmlist1 = Get-vm -Name $listBox1.SelectedItem | select NumCPU 
foreach ($vm1 in $vmlist1) 
{ 
[void]$listBox2.Items.Add($vm1.NumCPU) 
} 
} 

$tabPage2.Controls.Add($panel2) 
$listBox2.DataBindings.DefaultDataSourceUpdateMode = 0 
$listBox2.FormattingEnabled = $True 
$System_Drawing_Point = New-Object System.Drawing.Point 
$System_Drawing_Point.X = 1 
$System_Drawing_Point.Y = 1 
$listBox2.Location = $System_Drawing_Point 
$listBox2.Name = "listBox2" 
$System_Drawing_Size = New-Object System.Drawing.Size 
$System_Drawing_Size.Height = 369 
$System_Drawing_Size.Width = 160 
$listBox2.Size = $System_Drawing_Size 
$listBox2.TabIndex = 0 
$panel2.Controls.Add 
+0

缺少大量信息。恩。 listbox中允許多選?因爲atm。 get-vm返回的每個vm都會覆蓋標籤中最後一個vms cpu。 –

+0

嗨Graimer,我不需要多選。我會有幾個標籤顯示不同的數據,如內存統計數據,數據存儲位置,RAM等。 – Shamza

+0

我提交了一個未經測試的建議,但我必須承認這是100%未經測試的。如果它不起作用,你能更具體地說明什麼不起作用嗎?你說它在列表框中顯示時工作,你能提供你使用的'fill_updatelistbox'代碼嗎?它顯示什麼或只是空白?這是很不清楚的atm。 –

回答

0

奮力僅供參考,我不有資源來測試這一點,但我會盡力幫助。首先,確保列表框是單選項,因爲標籤更多是單項文本框:)然後,您可以嘗試:

function fill_updatelistbox 
{ 
#Should return a single VirtualMachine object 
$vm = Get-vm -Name ($listBox1.SelectedItem.toString()) 
$label1.Text = $vm.NumCPU.toString() 
} 
+0

感謝您的答覆,我累了它,並收到錯誤;您無法在空值表達式上調用方法。 在C:\ Users \ Olly \ Desktop \ tail.ps1:178 char:34 + $ label1.Text($ vm1.NumCPU.toString <<<<()) + CategoryInfo:InvalidOperation:(toString:String) [],RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull – Shamza

+0

sry .. typo。現在再試一次 –

+0

'方法調用失敗,因爲[System.Windows.Forms.Label]不包含名爲 'Text'的方法。 在C:\ Users \ Olly \ Desktop \ tail.ps1:178 char:13 + $ label1.Text <<<<($ vm.NumCPU.toString()) + CategoryInfo:InvalidOperation:(Text:String) [],RuntimeException + FullyQualifiedErrorId:MethodNotFound' – Shamza