0

編集 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);**

            }
        }

    }
}
 }

ご意見をお寄せいただきありがとうございます。

4

1 に答える 1

0

変換するだけのようです

if (d.Name == drvNamefrm2)

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

-- 式も現在は機能しているようです。それで、後で自分で「信号機」で比較と色の変更を行うことができます。

于 2013-02-10T15:28:34.370 に答える