NEWS

[C#] Hướng dẫn tạo menu trên Console App

[C#] Hướng dẫn tạo menu trên Console App
Đăng bởi: Thảo Meo - Lượt xem: 5033 09:22:22, 07/09/2022DEVEXPRESS   In bài viết

Xin chào các bạn, bài viết hôm nay mình tiếp tục chia sẻ các bạn cách tạo menu trên Console C#.

[C#] How to create menu in Console 

Dưới đây là giao diện demo ứng dụng Tạo menu trên Console C#:

menu_console_csharp

Ở trong bài viết này, mình sử dụng thư viện ConsoleMenu các bạn có thể cài đặt từ Nuget.

PM> NuGet\Install-Package ConsoleMenu -Version 0.1.1

Trong bài viết, mình có tạo hai menu, khi các bạn chọn danh mục thì nó sẽ vào Submenu

Source code menu console C#:

using ConsoleTools;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Net.Mime.MediaTypeNames;

namespace Menu_Console
{
    internal class Program
    {
        static void Main(string[] args)
        {           
            Console.OutputEncoding = Encoding.UTF8;
            Console.ForegroundColor = ConsoleColor.Green;
            var subMenu = new ConsoleMenu(args, level: 1)
             .Add("Tôn giáo", () => SomeAction("Sub_One"))
             .Add("Tình thành", () => SomeAction("Sub_Two"))
             .Add("Quận Huyện", () => SomeAction("Sub_Three"))
             .Add("Học vấn", () => SomeAction("Sub_Four"))
             .Add("Đóng", ConsoleMenu.Close)
             .Configure(config =>
             {
                 config.Selector = "--> ";
                 config.EnableFilter = true;
                 config.Title = "Submenu";
                 config.EnableBreadcrumb = true;
                 config.WriteBreadcrumbAction = titles => Console.WriteLine(string.Join(" / ", titles));
             });

            var menu = new ConsoleMenu(args, level: 0)
              .Add("Danh sách nhân viên", () => SomeAction("Danh sách nhân viên"))
              .Add("Bảng lương", () => SomeAction("Bảng lương"))
              .Add("Lịch công tác", () => SomeAction("Three"))
              .Add("Danh mục", subMenu.Show)
              .Add("Change me", (thisMenu) => thisMenu.CurrentItem.Name = "I am changed!")
              .Add("Đóng", ConsoleMenu.Close)
              .Add("Thực hiện hành động rồi đóng", (thisMenu) => { SomeAction("Close"); thisMenu.CloseMenu(); })
              .Add("Thoát ứng dụng", () => Environment.Exit(0))
              .Configure(config =>
              {
                  config.Selector = "--> ";
                  config.EnableFilter = true;
                  config.Title = "============== DANH SÁCH MENU - LAPTRINHVB.NET ===============";
                  config.EnableWriteTitle = false;
                  config.EnableBreadcrumb = true;
              });

            menu.Show();            
        }

        static void SomeAction(string text) {
            Console.WriteLine(text);         
            Console.ReadKey();
        }
    }
}

Danh sách các tham số cấu hình cho menu:

 public class MenuConfig
  {
    public ConsoleColor SelectedItemBackgroundColor = Console.ForegroundColor;
    public ConsoleColor SelectedItemForegroundColor = Console.BackgroundColor;
    public ConsoleColor ItemBackgroundColor = Console.BackgroundColor;
    public ConsoleColor ItemForegroundColor = Console.ForegroundColor;
    public Action WriteHeaderAction = () => Console.WriteLine("Pick an option:");
    public Action<MenuItem> WriteItemAction = item => Console.Write("[{0}] {1}", item.Index, item.Name);
    public string Selector = ">> ";
    public string FilterPrompt = "Filter: ";
    public bool ClearConsole = true;
    public bool EnableFilter = false;
    public string ArgsPreselectedItemsKey = "--menu-select=";
    public char ArgsPreselectedItemsValueSeparator = '.';
    public bool EnableWriteTitle = false;
    public string Title = "My menu";
    public Action<string> WriteTitleAction = title => Console.WriteLine(title);
    public bool EnableBreadcrumb = false;
    public Action<IReadOnlyList<string>> WriteBreadcrumbAction = titles => Console.WriteLine(string.Join(" > ", titles));
  }

Thanks for watching!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn tạo menu trên Console App
Đăng bởi: Thảo Meo - Lượt xem: 5033 09:22:22, 07/09/2022DEVEXPRESS   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.