Console Read(Line), ReadKey - C#
Формулировка задачи:
Появилась такая проблема. Пишу программу в консоле.
Первое меню отрабатывать должно по ReadKey(чтобы ввод не завершался Enter и сразу отрабатывались управляющие стрелки).
В это меню понадобилось добавить цифры 1 и 2, чтобы менять список(диспетчеров)
Вот верх:
теперь перехожу в метод AddDisp и при добавлении первого диспетчера(надо просто ввести имя) по Enter не считывается в строку введенное значение(курсор переходит на начало строки консоли, сама консоль не меняется.
Вот код метода:
Проблема наверняка "бытовая", подскажите в чем суть.
Листинг программы
- ConsoleKeyInfo cki;
- Console.TreatControlCAsInput = true;
- do
- {
- Console.Clear();
- Console.WriteLine("Управление самолетом(ESC -выход)");
- Console.WriteLine("(Right: + 50км/ч, Left: -50км/ч, Shift- Right : +150км/ч, Shift- Left: -150км/ч)");
- Console.WriteLine("(Up: +250м, Down: -250м, Shift- Up: +500м, Shift- Down: -500м)");
- Console.WriteLine("1 + Enter -добавить диспетчера, 2 + Enter - удалить диспетчера");
- Console.WriteLine();
- Console.WriteLine("{0}, {1}", aero.Hight, aero.Speed);
- cki = Console.ReadKey();
- if (cki.Key == ConsoleKey.D1)
- {
- AddDisp(disp);
- }
Листинг программы
- private void AddDisp(List<Disp> disp)
- {
- string enterStr;
- do
- {
- Console.Clear();
- Console.Write("Введите имя {0} - го диспетчера(Enter - выход): ", disp.Count);
- enterStr = Convert.ToString(Console.ReadLine());
- if (enterStr.Length > 0)
- {
- Disp newDisp = new Disp(enterStr, aero);
- disp.Add(newDisp); //диспетчер получает имя и самолет, с которым будет работать
- flyEvent += newDisp.ShowInfo;
- }
- } while (enterStr.Length > 0);
- aero.AddDisp(disp);
- }
Решение задачи: «Console Read(Line), ReadKey»
textual
Листинг программы
- static void Main(string[] args)
- {
- Console.TreatControlCAsInput = true;
- var enterStr = Console.ReadLine();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д