Il n'y a pas de contrôle intégré pour le faire, mais c'est très facile à réaliser avec un ComboBox standard. Laissez tomber l'un sur votre formulaire, changer son DropDownStyle à DropDownList pour empêcher sa modification, et en cas de charge pour le formulaire, ajoutez cette ligne:
comboBox1.DataSource = Environment.GetLogicalDrives();
Vous pouvez maintenant gérer l'événement SelectedValueChanged à prendre des mesures quand quelqu'un change sélectionné conduire. Après avoir répondu this question, j'ai trouvé un autre moyen (meilleur?) De le faire. Vous pouvez utiliser la méthode DriveInfo.GetDrives() pour énumérer les lecteurs et lier le résultat à la zone de liste déroulante. De cette façon, vous pouvez limiter les lecteurs apppear. Ainsi, vous pouvez commencer avec ceci:
comboBox1.DataSource = System.IO.DriveInfo.GetDrives();
comboBox1.DisplayMember = "Name";
maintenant comboBox1.SelectedValue sera de type DriveInfo, de sorte que vous aurez beaucoup plus d'informations sur le jeu sélectionné. Et si vous voulez seulement afficher les lecteurs réseau, vous pouvez le faire maintenant:
comboBox1.DataSource = System.IO.DriveInfo.GetDrives()
.Where(d => d.DriveType == System.IO.DriveType.Network);
comboBox1.DisplayMember = "Name";
Je pense que la méthode DriveInfo est beaucoup plus flexible.
Pourquoi voulez-vous cela? –
Il existe des raisons valables pour lesquelles vous devez pouvoir répertorier les lecteurs disponibles pour le système: par exemple, nous devons être en mesure de configurer un système pour facturer différentes sommes d'argent en fonction du lecteur sur lequel l'utilisateur choisit d'enregistrer. (Non, je ne pense pas que ce soit une bonne idée, mais le client insiste). – Jedidja