- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
[C#] Hướng dẫn tạo menu trên Console App
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#:
Ở 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!