2013-02-10 78 views
0

EDIT上午9:20 CST:看来你只需要转换磁盘利用率与DriveInfo []

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”部分。它跳过了我的“if”,即使d.Name是== 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);** 

      } 
     } 

    } 
} 
} 

非常感谢您的任何意见和建议。

+0

“drvNamefrm2”的类型是什么?这个名字暗示了一个控件,但是你正在比较一个字符串。 – 2013-02-10 15:23:21

+0

我正在将drvNamefrm1(从我的Form1插入到Form2中) - 这只是我区分它们的一种方式。 – scottO 2013-02-10 17:08:09

+0

没错。我必须去一个转换drvNamefrm2到一个字符串。 – scottO 2013-02-10 17:08:41

回答

0

看样子你只需要转换

if (d.Name == drvNamefrm2) 

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

--The公式也似乎是现在的工作。所以,后来我可以在“红绿灯”上做比较和换色。