0

编辑上午 9:20 CST:看来你只需要转换

   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
{

它使用两种形式,我从 Form1 中引入初始选择,因此下面的形式名称中的参数。

    public diskUtilForm(int drvNumfrm1, string drvNamefrm1)
    {
        InitializeComponent();
        mainForm test = new mainForm();
        **object drvNumfrm2 = (object)drvNumfrm1;
        object drvNamefrm2 = (object)drvNamefrm1;
        DriveInfo[] allDrives = DriveInfo.GetDrives();

这是这个“foreach”部分。即使 d.Name 是 == 到 drvNamefrm2,它也会跳过我的“if”——我不明白我做错了什么。

这里的想法是“如果”它们匹配“那么”交通灯背景将是绿色的。然后我想用那个小公式来指定其余的颜色。我只需要它来输入 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);**

            }
        }

    }
}
 }

提前感谢您的任何意见。

4

1 回答 1

0

看来你只需要转换

if (d.Name == drvNamefrm2)

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

——这个公式现在似乎也起作用了。所以,以后自己可以对“红绿灯”做对比和变色。

于 2013-02-10T15:28:34.370 回答