我记得在vb6中有一个类似于dropbox/combobox的控件,你可以选择驱动器名称.它会引发一个事件,然后您可以设置另一个控件来枚举列表框中的文件.(在drive.event中你执行files.path = drive.path来获得这种影响).
在C#中有这样的东西吗?一个控件,它会删除可用驱动器列表并在更改时引发事件?
没有内置控件可以做到这一点,但使用标准ComboBox很容易实现.在表单上删除一个,将DropDownStyle更改为DropDownList以防止编辑,并在表单的Load事件中添加以下行:
comboBox1.DataSource = Environment.GetLogicalDrives();
现在,您可以处理SelectedValueChanged事件,以便在有人更改所选驱动器时执行操作.
在回答了这个问题后,我发现了另一种(更好的?)方法.您可以使用DriveInfo.GetDrives()方法枚举驱动器并将结果绑定到ComboBox.这样你可以限制哪些驱动器适用.所以你可以从这开始:
comboBox1.DataSource = System.IO.DriveInfo.GetDrives(); comboBox1.DisplayMember = "Name";
现在comboBox1.SelectedValue将是DriveInfo类型,因此您将获得有关所选游戏的更多信息.如果您只想显示网络驱动器,可以立即执行此操作:
comboBox1.DataSource = System.IO.DriveInfo.GetDrives() .Where(d => d.DriveType == System.IO.DriveType.Network); comboBox1.DisplayMember = "Name";
我认为DriveInfo方法更灵活.