2013-03-05 56 views
0

我是編程新手,所以如果我問一些愚蠢的或者使用錯誤的術語,我很抱歉。 我試圖找到所有正在運行的進程(如在任務管理器中,「應用程序」),並將它們列在ListView中的圖標。在ListView中顯示正在運行的進程圖標

我一直在四處搜尋,發現很多Q & A's關於這個,但我努力讓它工作。

此處,我敢肯定,這是怎麼回事錯的部分:

ImageList imageListSmall = new ImageList(); 
Icon ico = Icon.ExtractAssociatedIcon(theprocess.MainModule.FileName); 
imageListSmall.Images.Add(ico); 
lvAppProg.SmallImageList = imageListSmall; 


ListViewItem itemProcess = new ListViewItem(theprocess.ProcessName); 
itemProcess.SubItems.Add(theprocess.Id.ToString()); 
lvAppProg.Items.AddRange(new ListViewItem[] {itemProcess}); 

我想列出每個進程擁有ID和圖標,並從我的理解,我需要做的是建立一個「 ImageList「,提取目標」Process「的圖標位置,然後使用進程名稱和ID將小圖像圖標添加到ListView。 (我不知道該圖標是否需要在單獨的列中) 任何幫助都非常感謝!

謝謝! :)

回答

1

你要分配圖像列表到ListViewItem的,並設置像imageIndex指定的:

ListViewItem itemProcess = new ListViewItem(theprocess.ProcessName); 
itemProcess.SubItems.Add(theprocess.Id.ToString()); 
lvAppProg.Items.AddRange(new ListViewItem[] {itemProcess}); 
itemProcess.ImageList = imageListSmall; 
itemProcess.ImageIndex = YOURIMAGEINDEX 
+0

感謝您的快速反應。 itemProcess.ImageList = imageListSmall; 我在Visual Studio中出現此錯誤。 「屬性或索引器'System.Windows.Forms.ListViewItem.ImageList'不能被分配給 - 它是隻讀的」 – 2013-03-05 12:09:50

+0

哦。好。你必須在ListView中設置ImageList-Property。你也可以看看http://stackoverflow.com/questions/6312473/how-to-show-icons-and-text-in-winforms-listview-when-view-style-is-set-to-detail – Tomtom 2013-03-05 12:18:21

+0

非常感謝您的幫助!我實際上發現了一個新的bug,現在我添加了這一行: Icon ico = Icon.ExtractAssociatedIcon(theprocess.MainModule.FileName); 我的一些進程從列表視圖中丟失......我不明白。 – 2013-03-05 12:25:58

相關問題