-3

コンパイル エラーがいくつか発生します。理由がわかりません。何が間違っているのでしょうか。

static void Main(string[] args)
{
    DriveInfo[] drives = DriveInfo.GetDrives();

    foreach (DriveInfo drive in drives)
    {
        Menu startMenu = new Menu() { Title = "Enter a drive" };

        // The error is here: Invalid initializer member declarator
        MenuItem d = new MenuItem() {Text = "{0}" , drive.Name};

        if (drive.IsReady)
        {
            Console.CursorLeft = 5;
            Console.Write(drive.VolumeLabel);
        }

        // another error: 'System.IO.DriveInfo' does not contain a definition for 'Selected' and no extension method 'Selected' accepting a first argument of type 'System.IO.DriveInfo' could be found (are you missing a using directive or an assembly reference?)
        drive.Selected += drive_Selected;

        startMenu.Items = new[] {d};
        startMenu.Show();
    }
}

private static void drive_Selected()
{
}
4

1 に答える 1

1

最初のエラーMenuItem-クラス初期化子で のプロパティ名を指定する必要があります

MenuItem d = new MenuItem() {Text = "{0}" , YourPropertyName = drive.Name};

または、単にドライブ名をプロパティに割り当てTextます (テキストの "{0}" が奇妙に見えるため、フォーマットを実行しようとした場合)

MenuItem d = new MenuItem() {Text = drive.Name };

2 番目のエラー-イベントまたはその他のイベントDriveInfoがありません。Selectedドライブに関する情報を保持するだけです。ドライブは、どこかで「選択」したことを知りません。Selectedクラスにイベントを追加する必要があるとしますMenuItem

とにかく、このタスクに WinForms や WPF を使用しないのはなぜでしょうか? コンソール アプリケーションでこの種のメニューを作成するには、多くの作業を行う必要があります。

于 2012-11-15T09:29:59.487 に答える