C# Powershell:Listview-映像
我在代码中努力寻找bug: 所需行为:我将拥有随机参数的调用列表,例如:C# Powershell:Listview-映像,c#,.net,image,listview,powershell,C#,.net,Image,Listview,Powershell,我在代码中努力寻找bug: 所需行为:我将拥有随机参数的调用列表,例如: 呼叫:图标(“AAA”) 呼叫:图标(“AAA”) 呼叫:图标(“BBB”) 呼叫:图标(“AAA”) 呼叫:图标(“BBB”) 呼叫:图标(“BBB”) 根据调用的参数,图标应加载并显示在listview中 真实行为:显示的图标取决于上次调用的参数。这是否意味着如果最后一个调用参数为BBB,则会为所有listitem显示图标BBB.ico。如果last call参数为AAA,则会为所有列表项显示图标AAA.ico 代码:
{
$objListView = New-Object System.Windows.Forms.ListView
$objListView.View = [System.Windows.Forms.View]::Details
$objListView.FullRowSelect = $true
$LVcol1 = New-Object System.Windows.Forms.ColumnHeader
$objListView.Columns.AddRange(
[System.Windows.Forms.ColumnHeader[]](@($LVcol1)))
$LVcol1.Text = "Events"
$LVcol1.Width = 165
$objListView.Location = New-Object System.Drawing.Size(10,40)
$objListView.Size = New-Object System.Drawing.Size(260,120)
$objListView.Height = 120
$objListView.Add_DoubleClick({Clicked;$objListView.Items.Remove($objListView.SelectedItems[0])})
$objForm.Controls.Add($objListView)
}
ListView的更新是通过定时调用的计时器调用的,定时检查“更新”。当最后一项从AAA更改为BBB时,图标将更改。但它改变了所有图标,不仅是必要的
知道问题在哪里吗?问题已经解决 问题是调用listItem的错误索引。现在一切都按预期显示了
$global:imageListSmall = new-Object System.Windows.Forms.ImageList
$global:bitm2=[System.Drawing.Image]::FromFile("c:\psn\AAA.ico")
$global:bitm=[System.Drawing.Image]::FromFile("c:\psn\BBB.ico")
$global:imageListSmall.Images.Add("AAA",$bitm)
$global:imageListSmall.Images.Add("BBB",$bitm2)
function Icon($command){
if ($command -like '*AAA*'){
$objListBox.SmallImageList = $imageListSmall;
$objListBox.Items.Add($command,0) #for first image need index 0
}
if ($command -like '*BBB*'){
$objListBox.SmallImageList = $imageListSmall;
$objListBox.Items.Add($command,1) #for second image need index 1
}}
您的代码不显示创建
$objListView
的位置。可能是在添加$command
之前需要清除它。列表框是在表单中创建的(已更新的原始帖子)…在调用update之前,我将尝试执行一些清理。
$global:imageListSmall = new-Object System.Windows.Forms.ImageList
$global:bitm2=[System.Drawing.Image]::FromFile("c:\psn\AAA.ico")
$global:bitm=[System.Drawing.Image]::FromFile("c:\psn\BBB.ico")
$global:imageListSmall.Images.Add("AAA",$bitm)
$global:imageListSmall.Images.Add("BBB",$bitm2)
function Icon($command){
if ($command -like '*AAA*'){
$objListBox.SmallImageList = $imageListSmall;
$objListBox.Items.Add($command,0) #for first image need index 0
}
if ($command -like '*BBB*'){
$objListBox.SmallImageList = $imageListSmall;
$objListBox.Items.Add($command,1) #for second image need index 1
}}