2012-11-15 4 views
-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() 
{ 
} 
+0

downvoting 사람들이 초보자에게 도움이된다고 생각합니까? 바보 같은 질문은 ... – hoang

답변

1

첫 번째 오류 - 당신이 클래스 초기화에 MenuItem의 속성 이름을 제공해야

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

아니면 그냥 포맷을하려고 노력하면 간단하게 (Text 속성에 드라이브 이름을 할당하기 때문에 "{ 0} "은 나를 위해 이상하게 보임)

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

초 오류 - DriveInfo에는 Selected 이벤트 또는 다른 이벤트가 없습니다. 드라이브에 대한 정보 만 보유하고 있습니다. 그리고 드라이브는 당신이 어딘가에 그것을 '선택'했다는 것을 모릅니다. MenuItem 클래스에 Selected 이벤트를 추가해야한다고 가정합니다.

하지만 어쨌든 왜이 작업을 위해 WinForms 또는 WPF를 사용하지 않을까요? 콘솔 응용 프로그램에서 이러한 종류의 메뉴를 만들려면 많은 작업을해야합니다.

관련 문제