1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10 using System.Diagnostics; // 获取系统进程必须所用System.Diagnostics
11
12 namespace WinApp_TreeView
13 {
14 public partial class Form1 : Form
15 {
16 public Form1()
17 {
18 InitializeComponent();
19 }
20 private void Form1_Load(object sender, EventArgs e)
21 {
22 GetSystemProcess();
23 }
24 /// <GetSystemProcess>获取当前系统所有正在运行的进程,并在树视图中显示.
25 /// </GetSystemProcess>
26 private void GetSystemProcess()
27 {
28 // 禁用树视图重绘
29 treeView1.BeginUpdate();
30 // 先构造一个根节点
31 TreeNode root = new TreeNode();
32 root.Text = "所有进程";
33 treeView1.Nodes.Add(root);
34 /***********************************************************************
35 * 【方法1】: 将本机的系统进程名称作为子节点添加到根节点下
36
37 // 获取当前系统正在运行的进程数
38 string[] processs = Process.GetProcesses().Select(p => p.ProcessName).ToArray();
39 // 遍历获取的进程,并将进程名称作为子节点添加到根节点(所有进程)下
40 foreach (string proc in processs)
41 {
42 treeView1.Nodes[0].Nodes.Add(proc);
43 }
44
45 // 获取正在运行的进程数:
46 label1.Text = "进程数: " + processs.Length.ToString();
47
48 *
49 ***********************************************************************/
50
51 /***********************************************************************
52 * 【方法2】: 将本机的系统进程名称作为子节点添加到根节点下
53 ***********************************************************************/
54 TreeNode[] treenodes = Process.GetProcesses().Select( p => new TreeNode(p.ProcessName) ).ToArray();
55
56 treeView1.Nodes[0].Nodes.AddRange(treenodes);
57
58 // 展开所有节点
59 treeView1.ExpandAll();
60 // 获取所有的子节点个数:true; 只获取根节点个数:false
61 //label1.Text = treeView1.GetNodeCount(true).ToString();
62 // 启用树视图重绘
63 treeView1.EndUpdate();
64 }
65 }
66 }