简体   繁体   中英

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.

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");
            }
        }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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