2013-02-10 79 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公式也似乎是現在的工作。所以,後來我可以在「紅綠燈」上做比較和換色。