Tùy biến giao diện ứng dụng Console


Mặc dù không có khả năng hỗ trợ những hàm vẽ đồ họa mạnh trong DOS nhưng khi thao tác với một ứng dụng Console trong C#, chúng ta vẫn có khả năng tùy biến các thành phần đồ họa của ứng dụng như màu nền, màu chữ, tọa độ..

Trong ví dụ sau, chúng ta sẽ tạo ra một ứng dụng Console trong C# mà trong đó người dùng sẽ di chuyển một ký tự hiển trị trong màn hình với các phím mũi tên trên bàn phím

image Giao diện ứng dụng cuối cùng

Trước hết, chúng ta sẽ tạo một ứng dụng Console trong C# (chọn File –> New Project –> Visual C# –> Console Application)
image

Và nội dung đoạn code trong tập tin Program.cs của chúng ta sẽ là như sau:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using System.Text;
namespace Example
{
    class Test
    {
        public static void Main()
        {
            int col=0, row=0;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.ForegroundColor = ConsoleColor.White;
            Console.Clear();
            Console.CursorVisible = false;
            while (true)
            {
                ConsoleKeyInfo keyInfo = Console.ReadKey(true);
                if (keyInfo.Key == ConsoleKey.Escape)
                    break;

                Console.Clear();
                if (keyInfo.Key == ConsoleKey.LeftArrow)
                {
                    col--;
                }
                else if (keyInfo.Key == ConsoleKey.RightArrow)
                {
                    col++;
                }
                else if (keyInfo.Key == ConsoleKey.UpArrow)
                {
                    row--;
                }
                else if (keyInfo.Key == ConsoleKey.DownArrow)
                {
                    row++;
                }
                if (col < 0)
                    col = Console.WindowWidth;
                if (col > Console.WindowWidth)
                    col = 0;
                if (row < 0)
                    row = Console.WindowHeight;
                if (row > Console.WindowHeight)
                    row = 0;
                Console.CursorTop = row;
                Console.CursorLeft = col;
                Console.Write("A");
            }
        }
    }
}

Trong đoạn code trên, chúng ta sử dụng một số thuộc tính sau để thiết lập cho cửa sổ Console của chúng ta. Cụ thể:

Console.ForegroundColor = Color.White; //cho phép chúng ta thiết lập màu chữ của Console

Console.BackgroundColor = Color.Blue; //cho phép chúng ta thiết lập màu nền của Console

Console.CursorVisible = False; // không cho phép hiển thị con trỏ trong cửa sổ

Sau đó trong vòng lặp vô hạn, chúng ta lần lượt thực hiện các việc:

– Lấy phím được nhập và kiểm tra. Xóa đi màn hình ở vòng lặp trước đó bằng hàm Console.Clear()

– Nếu là Escape thì thoát khỏi ứng dụng, nếu là các phím mũi tên thì di chuyển ký tự theo chiều tương ứng bằng cách tăng giảm biến row và col. Khi tăng giảm, chúng ta kiểm tra chắc chắn rằng ký tự không vượt qua ngoài chiều rộng và chiều cao của cửa sổ Console.

– Di chuyển tọa độ của con trỏ đến vị trí chính xác bằng việc thiết lập thuộc tính CursorLeft và CursorTop, sau đó sử dụng Console.Write để viết ký tự ra màn hình.

Chúc các bạn thành công,

Tác giả: xuanchien

Tran Xuan Chien. Japan Advanced Institute of Science and Technology - Japan. Senior Developer - NUS Technology.

7 thoughts on “Tùy biến giao diện ứng dụng Console”

  1. bai viet rat huu ich
    thanks tac gia nhieu!
    nhan day minh co mot vai cau hoi rat mong duoc ban giai dap
    minh can thiet ke 1 giao dien cho quan ly sinh vien,voi cac thuoc tinh: quan ly, dang nhap, diem thi…
    viet bang c# va tren console.
    mong nhan duoc su giup do cua ban!thanks.
    email: wanytran@gmail.com

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s