我正在尝试使用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,因为它是最后一个。
答案 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"]));