EDIT 9:20am 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();
这是"前臂"部分。它跳过了我的"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);**
}
}
}
}
}
提前感谢您的意见。
看起来你只需要转换
if (d.Name == drvNamefrm2)
至
if (d.Name == (string)drvNamefrm2)
--这个公式现在似乎也在发挥作用。所以,以后自己可以在"红绿灯"上做对比和变色。