2014-03-02 114 views
2

我希望創建一種舊式的終端仿真,創建命令似乎很容易,但我想給用戶一個非常複雜的UI界面。我希望能夠在控制檯上打印文本,例如:「日誌」,然後當用戶按下箭頭鍵時,我希望它突出顯示,一旦選擇了它,我希望能夠進入並執行選定的命令。我正在使用Visual Studio Express 2012 for Desktop btw。如何在C#控制檯中突出顯示並選擇控制檯文本

回答

3

我想你將不得不重寫你已經把屏幕上的線條來改變它們的顏色和背景的效應初探箭頭輸入

我認爲你將能夠使用

Console.SetCursorPosition 

把你的光標回到你想改變顏色的線,然後

Console.BackgroundColor 
Console.ForegroundColor 
Console.ResetColor() 

修改你正在寫

的顏色

所以基本上你需要

  • 清楚,當你開始就知道每個選項的位置在屏幕
  • 魔響應按鍵
  • 改寫該項目的魔按鍵光的顏色/背景

請記住,在重寫高亮顯示的零件後,將光標恢復到原來的位置。這是一個粗略的例子,以顯示我的意思。

Console.Clear(); 
Console.WriteLine("Option 1"); 
Console.WriteLine("Option 2"); 
Console.WriteLine("Option 3"); 
Console.WriteLine(); 
Console.Write("input: "); 

var originalpos = Console.CursorTop; 

var k = Console.ReadKey(); 
var i = 2; 

while (k.KeyChar != 'q') 
{ 

    if (k.Key == ConsoleKey.UpArrow) 
    { 

     Console.SetCursorPosition(0, Console.CursorTop - i); 
     Console.ForegroundColor = ConsoleColor.Black; 
     Console.BackgroundColor = ConsoleColor.White; 
     Console.WriteLine("Option " + (Console.CursorTop + 1)); 
     Console.ResetColor(); 
     i++; 

    } 

    Console.SetCursorPosition(8, originalpos); 
    k = Console.ReadKey(); 
} 

我想這可能是更容易地創建,打印屏幕上的所有必要的文字工作流程以及每個用戶按下一個法寶時間重寫整個文本,突出,當您去。