110,536
社区成员
发帖
与我相关
我的任务
分享
private void LoadItems()
{
_loading = true;
treeViewDisks.Nodes.Clear();
comboBox1.Items.Clear();
TreeNode root = treeViewDisks.Nodes.Add("Computer");
root.ImageIndex = (int)IconIndex.MyComputer;
root.SelectedImageIndex = root.ImageIndex;
// display volumes
VolumeDeviceClass volumeDeviceClass = new VolumeDeviceClass();
TreeNode volumesNode = new TreeNode("Volumes");
volumesNode.ImageIndex = (int)IconIndex.Volume;
volumesNode.SelectedImageIndex = volumesNode.ImageIndex;
root.Nodes.Add(volumesNode);
foreach (Volume device in volumeDeviceClass.Devices)
{
if ((usbOnlyToolStripMenuItem.Checked) && (!device.IsUsb))
continue;
string text = null;
if ((device.LogicalDrive != null) && (device.LogicalDrive.Length > 0))
{
text += device.LogicalDrive;
}
if (text != null)
{
text += " ";
}
text += device.Description;
if (device.FriendlyName != null)
{
if (text != null)
{
text += " - ";
}
text += device.FriendlyName;
}
TreeNode deviceNode = volumesNode.Nodes.Add(text);
if (device.IsUsb)
{
deviceNode.ImageIndex = (int)IconIndex.Box;
deviceNode.SelectedImageIndex = deviceNode.ImageIndex;
}
deviceNode.Tag = device;
foreach (Device disk in device.Disks)
{
TreeNode diskNode = deviceNode.Nodes.Add(disk.Description + " - " + disk.FriendlyName);
diskNode.ImageIndex = deviceNode.ImageIndex;
diskNode.SelectedImageIndex = diskNode.ImageIndex;
diskNode.Tag = device;
}
}
root.ExpandAll();
_loading = false;
}
private void treeViewDisks_AfterSelect(object sender, TreeViewEventArgs e)
{
// update property grid
Device device = (Device)e.Node.Tag;
if (device == null)
{
propertyGridDevice.SelectedObject = null;
return;
}
propertyGridDevice.SelectedObject = device;
}
private void usbOnlyToolStripMenuItem_Click(object sender, EventArgs e)
{
LoadItems();
}
private void ejectToolStripMenuItem_Click(object sender, EventArgs e)
{
Device device = GetSelectedDevice();
if (device == null)
return;
string s = device.Eject(true);
if (s != null)
{
MessageBox.Show(this, s, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void treeViewDisks_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
treeViewDisks.SelectedNode = e.Node;
}
private Device GetSelectedDevice()
{
TreeNode node = treeViewDisks.SelectedNode;
if (node == null)
{
return null;
}
return (Device)node.Tag;
}