简体   繁体   English

尝试读取 dvd/cd 驱动器并在 C# 中填充组合框

[英]trying to read dvd/cd drives and populate combo box in c#

I'm trying to populate a combobox in a windows form with all my dvd/cd drives and say if they have a disc in them.我试图用我所有的 dvd/cd 驱动器以 windows 形式填充一个组合框,并说它们是否有光盘。

I'm trying to do it with a class tried sending an object and list but the object just comes up with and error and the list just comes up with collection.我正在尝试使用一个尝试发送对象和列表的类来做到这一点,但该对象只是出现错误,而列表只是出现了集合。

using System;
using System.Windows.Forms;

namespace DVD_main
{
        public frmMain()
        {
            InitializeComponent();
            cboDrive.Items.AddRange(Cls_DVD_Player.DVDDrvCtrls.cdDrv);
        }
}

using System;
using System.Collections.Generic;
using System.Windows;
using System.IO;
using System.Runtime.InteropServices;



namespace Cls_DVD_Controls
{

    class DVDDrvCtrls
    {
        private static readonly object cboDrive;

        public static List<string> cdDrv()
        {
            List<string> drvNames = new List<string>();
            DriveInfo[] cdDrives = DriveInfo.GetDrives();
            foreach (DriveInfo d in cdDrives)
            {
                if (d.DriveType == DriveType.CDRom && d.IsReady)
                {
                    drvNames.Add(d.Name + " " + d.VolumeLabel);
                    MessageBox.Show(d.Name + " " + d.VolumeLabel);
                }
                else if (d.DriveType == DriveType.CDRom) {
                    drvNames.Add(d.Name + " Drive Empty");
                }
            }
            //drvNames.AsReadOnly.cdDrives;
            return drvNames;

        }
    }
}

/*this was the best i could do couldn't find way for the class to pass the details i wanted this was the best i could find*/    

private void CheckDrive()
    {
        //string[] dvdDrives = new Cls_DVD_Player.DVDDrvCtrls();

        //List<string> drvNames = new List<string>();
        DriveInfo[] cdDrives = DriveInfo.GetDrives();
        cboDrive.Items.Clear();

        foreach (DriveInfo d in cdDrives)
        {
            if (d.DriveType == DriveType.CDRom && d.IsReady)
            {
                cboDrive.Items.Add(d.Name + " " + d.VolumeLabel);
                //MessageBox.Show(d.Name + " " + d.VolumeLabel);
            }
            else if (d.DriveType == DriveType.CDRom)
            {
                cboDrive.Items.Add(d.Name + " Drive Empty");
            }
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM