2016-09-11 11 views
1

콘솔에서 Intractive 및 Selectable 항목을 만드는 방법에 대한 아이디어가 있습니까? Yeoman 콘솔과 같은 .NET의 콘솔 응용 프로그램에서 대화 형, 선택 가능 및 스크롤 가능 항목

당신은 Node.js를 패키지로 유사시를 설치하고 함께 명령 줄에서 호출

, '요'그들은 우리에게 아래쪽 화살표 키를 최대로 선택할 수 있습니다 스크롤 항목의 목록을 보여줍니다.

어쨌든이 목적을 위해 코드 또는 라이브러리가 있습니까?

enter image description here enter image description here

+0

콘솔은 실제로 대화식이 아닙니다. 최근 버전 (Windows 10, Server 2012 R2)에서는 콘솔이 좀 더 사용자에게 친숙하지만 상호 작용은 여전히 ​​대부분의 다른 터미널과 유사합니다. 입력하고 Enter를 누릅니다. 당신이 원한다면 윈도우 폼/wpf 폼에 여러 줄짜리 텍스트 블록을 쳐서 그에 따라 포맷하는 방법을보십시오. – jleach

+1

@ jdl134679 그래서 Yeoman은 어떻게 작동하고 성공적으로 작동합니까? – NBM

답변

1

(.NET 코어에서) 그들은 솔루션의 핵심 부분은 다음과 같습니다가

  • 당신은 읽을 Console.CursorTop을 사용할 수 있습니다

    • 당신은 화살표 키를 눌러 감지 Console.ReadKey()을 사용할 수 있습니다 현재 커서 위치를 쓰십시오.

    t 호스 2, 여기에 원하는 것을하는 아주 간단한 코드가 있습니다 :

    int optionsCount = 5; 
    
    int selected = 0; 
    
    bool done = false; 
    
    while (!done) 
    { 
        for (int i = 0; i < optionsCount; i++) 
        { 
         if (selected == i) 
         { 
          Console.ForegroundColor = ConsoleColor.Cyan; 
          Console.Write("> "); 
         } 
         else 
         { 
          Console.Write(" "); 
         } 
    
         Console.WriteLine(i); 
    
         Console.ResetColor(); 
        } 
    
        switch (Console.ReadKey(true).Key) 
        { 
         case ConsoleKey.UpArrow: 
          selected = Math.Max(0, selected - 1); 
          break; 
         case ConsoleKey.DownArrow: 
          selected = Math.Min(optionsCount - 1, selected + 1); 
          break; 
         case ConsoleKey.Enter: 
          done = true; 
          break; 
        } 
    
        if (!done) 
         Console.CursorTop = Console.CursorTop - optionsCount; 
    } 
    
    Console.WriteLine($"Selected {selected}.");