Страницы

Поиск по вопросам

воскресенье, 29 марта 2020 г.

Создание кнопки в консоли на C#

#c_sharp #консоль


Возможно ли добавить в консольное приложение кнопку? Чтобы пользователь не вводил
сообщение сам, а нажимал на слово и получал результат. Своеобразный гипертекст для консоли.
    


Ответы

Ответ 1



Можно сделать что-то такое: Console.WriteLine("Choose your destiny:"); int top = Console.CursorTop; int y = top; Console.WriteLine("One"); Console.WriteLine("Two"); Console.WriteLine("Three"); int down = Console.CursorTop; Console.CursorSize = 100; Console.CursorTop = top; ConsoleKey key; while ((key = Console.ReadKey(true).Key) != ConsoleKey.Enter) { if (key == ConsoleKey.UpArrow) { if (y > top) { y--; Console.CursorTop = y; } } else if (key == ConsoleKey.DownArrow) { if (y < down - 1) { y++; Console.CursorTop = y; } } } Console.CursorTop = down; if (y == top) Console.WriteLine("один"); else if (y == top + 1) Console.WriteLine("два"); else if (y == top + 2) Console.WriteLine("три"); Пользователю выводится список, по которому он может перемещаться, нажимая клавиши вверх и вниз. После чего сделать выбор, нажав Enter. При желании, можно добавить в консольное приложение графическое окошко. Но лучше так не делать, а сразу создавать оконное приложение. Добавьте в проект ссылку на сборку System.Windows.Forms.dll. После чего можно сваять следующее: var list = new List { "one", "two", "three" }; var form = new Form(); var listBox = new ListBox { Parent = form }; listBox.DataSource = list; var button = new Button { Parent = form, Text = "OK", Left = 200, Top = 230, DialogResult = DialogResult.OK }; form.AcceptButton = button; form.ShowDialog(); var value = (string)listBox.SelectedValue; Console.WriteLine(value); Тут всё просто: создали форму, на неё поместили листбокс, к нему привязали список с нужными значениями. Также на форму помещаем кнопку и настраиваем необходимые свойства так, чтобы нажатие клавиши Ввод (Enter) закрывало форму. После закрытия окна получаем из листбокса выбранный пункт.

Комментариев нет:

Отправить комментарий