在具有多行输入的文本框中列出WMI数据

时间:2011-04-15 00:07:50

标签: c# textbox wmi

我正在尝试使用WMI来收集系统数据,在这种情况下,我抓住所有启动程序并在richtextbox中显示它们。当我运行代码时,它可以工作,但问题是每次它只是覆盖框中的当前文本,并且最终只显示最后一个启动项而不是所有20个启动项。这是我的代码:

ManagementObjectSearcher searcher =
                new ManagementObjectSearcher("root\\CIMV2",
                "SELECT * FROM Win32_StartupCommand");

        foreach (ManagementObject queryObj in searcher.Get())
        {

            richTextBox1.Text = "Location: {0}" + queryObj["Location"];
            richTextBox2.Text = "Location: {0}" + queryObj["Command"];
            richTextBox3.Text = "Location: {0}" + queryObj["Description"];
        }

例如,项目A B和C被告知启动。当我运行我的程序时,它只会在文本框中显示C,因为之前显示的是A和B,但每次只删除它并最终显示C,因为它是最后一个。

1 个答案:

答案 0 :(得分:2)

您正在替换richTextBox的内容,而不是添加新行

试试这个

richTextBox1.Text += string.Format("Location: {0} \n",queryObj["Location"]);
richTextBox2.Text += string.Format("Command: {0} \n",queryObj["Command"]);
richTextBox3.Text += string.Format("Description: {0} \n",queryObj["Description"]);

richTextBox1.AppendText(string.Format("Location: {0} \n",queryObj["Location"]));
richTextBox2.AppendText(string.Format("Command: {0} \n",queryObj["Command"]));
richTextBox3.AppendText(string.Format("Description: {0} \n",queryObj["Description"]));