我有下面的代碼使用WMI來獲取本地磁盤信息(從我從其他網站了解到)。無論如何,我創建了所有標籤和組合框,並且組合工作正常 - 它在計算機上顯示本地磁盤。標籤顯示任何東西
但是,當我嘗試從WMI中取回任何選中的磁盤並將其顯示出來時,它就不會在標籤旁邊顯示任何內容。 WMI工作正常,因爲我可以使用powershell來顯示get-wmiobjects,並且我帶回的兩個對象實際上通過powershell顯示了一些東西......只是不在此應用程序中。
任何想法?
namespace diskdrive_info
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//Get all the disk drives
ManagementObjectSearcher mosDisk = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
// Loop through each object (disk) retrieved by WMI
foreach (ManagementObject moDisk in mosDisk.Get())
{
cmbHdd.Items.Add(moDisk["Model"].ToString());
}
}
private void cmbHdd_SelectedIndexChanged(object sender,EventArgs e)
{
ManagementObjectSearcher mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Model = '" + cmbHdd.SelectedItem + "'");
foreach (ManagementObject moDisk in mosDisks.Get())
{
lblType.Text = "Type:" + moDisk["MediaType"].ToString();
lblModel.Text = "Model: " + moDisk["Model"].ToString();
}
}
}
}
嗨 - 我把一個斷點(在MediaType)位,我做了一步(F11)和程序停止在Form1_Load的結尾。它甚至沒有查看cmbHdd_SelectedIndexChanged ... Form1_Load中的第一個foreach經歷了兩次,然後顯示了winform。 – lara400
你知道cmbHdd.SelectedItem是什麼時候斷點出現?另外,當你添加一些東西到組合中時,你的selectedIndexChanged事件可能會被觸發。 – Bmo
抱歉 - 調試器甚至沒有命中「private void cmbHdd_SelectedIndexChanged(object sender,EventArgs e)」 - 它在此之前結束。也許我和我的cr @ p調試技能,但對我來說,它似乎程序甚至沒有得到cmbHdd_SelectedIndexChanged有你提到的cmbHdd.SelectedItem ....看不出爲什麼它沒有擊中其餘的代碼.. – lara400