C# 磁盘利用率与DriveInfo[]

C# 磁盘利用率与DriveInfo[],c#,C#,编辑上午9:20 CST:似乎您只需转换 if (d.Name == drvNamefrm2) if (d.Name == drvNamefrm2) 到 if (d.Name == (string)drvNamefrm2) 好的,我正在尝试编写一个小型性能监视器。我在这里做了研究,并通过一些步行方式进行了工作。这可能是一个容易解决的小问题,但我看不出来。我希望你能看看 using System; using System.Collections.Generic; using

编辑上午9:20 CST:似乎您只需转换

   if (d.Name == drvNamefrm2)
if (d.Name == drvNamefrm2)

    if (d.Name == (string)drvNamefrm2)

好的,我正在尝试编写一个小型性能监视器。我在这里做了研究,并通过一些步行方式进行了工作。这可能是一个容易解决的小问题,但我看不出来。我希望你能看看

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;


namespace TrafcLightPerfMeter_v1
  {
public partial class diskUtilForm : Form
{
它使用两种形式,我将从形式1中引入初始选择,因此在下面的形式名称中包含参数

    public diskUtilForm(int drvNumfrm1, string drvNamefrm1)
    {
        InitializeComponent();
        mainForm test = new mainForm();
        **object drvNumfrm2 = (object)drvNumfrm1;
        object drvNamefrm2 = (object)drvNamefrm1;
        DriveInfo[] allDrives = DriveInfo.GetDrives();
这是“foreach”部分。它跳过了我的“if”,即使d.Name=to drvNamefrm2——我不明白我做错了什么

这里的想法是“如果”它们匹配“那么”交通灯背景将是绿色的。然后我想用这个小公式来指定其余的颜色。我只需要输入if语句

   foreach (DriveInfo d in allDrives)
        {
         if (d.Name == drvNamefrm2)
            {
                labelGreen.BackColor = Color.Green;
                long totalAvailable = d.AvailableFreeSpace;
                long totalSpace = d.TotalSize;

        double percentAvailable =   Math.Round(((double)totalAvailable/(double)totalSpace)*100,4);**

            }
        }

    }
}
 }

提前感谢您的任何输入。

看来您只需转换即可

   if (d.Name == drvNamefrm2)
if (d.Name == drvNamefrm2)


--这个公式现在似乎也在起作用。因此,稍后我可以在“红绿灯”上进行比较和颜色更改。

drvNamefrm2的类型是什么?名称表示一个控件,但您将其作为字符串进行比较。我将drvNamefrm1(从我的Form1引入我的Form2)——这只是我区分它们的一种方式。对。我必须将drvNamefrm2转换为字符串。