Курсор на строке в меню консольного приложения - C#
Формулировка задачи:
Guys, please help me with creating cursor in the Main Menu. Мальчики, помогите пожалуйста мне с созданием курсора в области меню. К примеру я создала меню с помощью switch(k) и чтоб там пользователь мог выбирать команды => стрелками вверх, вниз движение курсора за пределами меню и при нажатии Enter выбирание данной команды.
Вид курсора:
" => "Образный вид:
=> * создание случайных чисел для одномерного массива * создание случайных чисел для двумерного массива * вывод всех массивов на экран консоли * создать IO stream * выход из консольного приложения Вот это приблизительного то, что я бы хотела, чтобы было. При нажатии вверх, курсор будет оставаться в определенном пределе ограничения, а если вниз, то будет так: * создание случайных чисел для одномерного массива => * создание случайных чисел для двумерного массива * вывод всех массивов на экран консоли * создать IO stream * выход из консольного приложения Спасибо, кто поможетРешение задачи: «Курсор на строке в меню консольного приложения»
textual
Листинг программы
using System;
#region Main
class Program{
static readonly string _cursor = "=> ";
static readonly string[] _menuitems = {
"* Creating random numbers for the one-dimensional array.",
"* Creating random numbers for the two-dimensional array.",};
protected static void Main(){ // Main
Console.Title = "Console Application Menu";
Console.CursorVisible = false;
Menu();
Console.ReadKey();}
private static void Specifications(){ // Specifications
Console.ForegroundColor = ConsoleColor.Green; DateTime _d_t = new DateTime();
Console.WriteLine("\t\t\t " + _d_t.Date.ToUniversalTime());
int _n = 0; int[,] _i = new int[_n, _n];
Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine(new string('_', 80));
Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("\t\t\t CONSOLE APPLICATION MENU"); Console.WriteLine();
Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine(new string('_', 80));}
private static void MenuPrint(int i_choice){ // MenuPrint
Console.Clear();
Specifications();
for (int i = 0; i < _menuitems.Length; i++) {
if (i == i_choice){
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(_cursor);
Console.ForegroundColor = ConsoleColor.DarkGreen;}
if (i == i_choice){
Console.ForegroundColor = ConsoleColor.Green;}
else Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.WriteLine(_menuitems[i]);}}
private static int Menu(){
int choice = 0;
while (true){
MenuPrint(choice);
switch (Console.ReadKey().Key){
case ConsoleKey.UpArrow:
if (choice != 0)
--choice;
break;
case ConsoleKey.DownArrow:
if(choice != _menuitems.Length - 1)
++choice;
break;
case ConsoleKey.Enter:
Console.CursorVisible = true;
return choice;}}}}
#endregion