編集 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
{
これは 2 つのフォームを使用しており、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);**
}
}
}
}
}
ご意見をお寄せいただきありがとうございます。