CƠ BẢN
SỰ KIỆN
NÂNG CAO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

ToolTip - HelpProvider - ErrorProvider trong C# winforms

Trong hướng dẫn này mình sẽ giới thiệu các bạn một trong số các điều khiển đặc biệt trong lập trình C# winforms, cụ thể là ToolTip, HelpProvider, ErrorProvider.

Đây là các điều khiển rất quan trong để hoàn thiện một ứng dụng với đầy đủ các chức năng, vì vậy hãy nắm thật rõ nhó nhé. Chúng ta sẽ cùng nhau tìm hiểu về công dụng của nó cũng như các sự kiện và phương thức của nó.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. ToolTip

ToolTip là điều khiển cho phép hiển thị các thông tin chú thích khi người dùng đưa chuột qua các điều khiển có thiết lập ToolTip.

winforms bai6 01 PNG

Một số thuộc tính thường dùng của ToolTip:

Thuộc tính Mô tả
Active Mang giá trị True hoặc False, nếu thiết lập True thì ToolTip có hiệu lực hiển thị thông báo, nếu mang giá trị False thì ToolTip không hiển thị được thông báo
AutomaticDelay Thiết lập thời gian xuất hiện ToolTip khi vừa đưa chuột đến điều khiển, thời gian tính bằng mili giây
AutoPopDelay Thời gian hiển thị ToolTip cho đến khi kết thúc khi người dùng đã đưa chuột đến điều khiển, thời gian tính bằng mili giây
IsBalloon Quy định kiểu thiển thị của ToolTip (False/True)
ReshowDelay Thời gian mà ToolTip tắt từ khi người dùng đưa chuột ra khỏi điều khiển, thời gian tính bằng mili giây
ToolTipIcon Biểu tượng xuất hiện bên cạnh chuỗi khai báo trong thuộc tính ToolTipTitle
ToolTipTitle Chuỗi hiển thị bên cạnh biểu tượng ToolTipIcon
UseAnimation Thiết lập hiệu ứng ảnh động được biểu diễn khi ToolTip được hiển thị
UseFading Thiết lập hiệu ứng mờ dần được biểu diễn khi ToolTip hiển thị

Một số phương thức thường dùng của ToolTip:

Phương thức Mô tả
SetToolTip() Thiết lập chuỗi hiển thị của ToolTip trên điều khiển
GetToolTip() Biểu tượng xuất hiện bên cạnh chuỗi khai báo trong thuộc tính ToolTipTitle
Clear() Loại bỏ tất cả ToolTipText cho khác điều khiển trên Form

2. HelpProvider

Điều khiển HelpProvider cung cấp cửa sổ trợ giúp cho điều khiển. Với những ứng dụng có sử dụng HelpProvider, người dùng có thể gọi sự trợ giúp bằng cách ấn phím F1.

winforms bai6 02 PNG

Một số thuộc tính thường dùng của HelpProvider:

Thuộc tính Mô tả
HelpNamespace Chỉ định tên tập trình trợ giúp định dạng chm hoặc html
HelpKeyWord Từ khóa tìm kiếm, từ khóa này là chi mục hoặc chủ đề được truyền vào tập tin tìm kiếm. Thuộc tính HelpNavigator sẽ quy định từ khóa này tìm kiếm theo chủ đề hay theo chỉ mục
HelpString Hiển thị chuỗi trợ giúp cho điều khiển. Nếu thuộc tính HelpProvider không được thiết lập thì khi người dùng nhấn F1 sẽ hiển thị chuỗi trợ giúp này
ShowHelp Nếu thiết lập giá trị True thì cho phép nội dung trợ giúp hiển thị trên một điều khiển nào đó. Nếu thiết lập giá trị False thì không hiển thị được
HelpNavigator

Thiết lập cách thức hiển thị của tập tin trợ giúp. Gồm các thuộc tính thành viên như:

  • AssociateIndex: Mở tập tin trợ giúp và hiển thị danh sách chỉ mục có ký tự trùng với ký tự đầu tiên trong thuộc tính HelpKeyWorf
  • Find: Giúp hiển thị nội dung trợ giúp có chuỗi ký tự trùng với từ khóa trong thuộc tính HelpKeyWord
  • Index: Hiển thị danh mục các chỉ mục trong tập tin trợ giúp
  • KeyWordIndex: Hiển thị danh mục là các chỉ mục như từ khóa trong thuộc tính HelpKeyWord
  • TableOfContentsL Hiển thị tất cả cá nội dung trong tập tin trợ giúp
  • Topic: Hiển thị danh mục các chủ đề trong tập tin trợ giúp, áp dụng với tập tin có hỗ trợ danh mục các chủ đề
  • TopicId: Hiển thị chủ đề có mã trùng với mã chủ đề chỉ định, áp dụng với tập tin có hỗ trợ danh mục các chủ đề và các chủ đề được đánh số.

Một số phương thức thương dùng của HelpProvider:

Phương thức Mô tả
SetHelpKeyWord Thiết lập giá trị cho thuộc tính HelpKeyWord
SetHelpNavigator Thiết lập giá trị cho thuộc tính HelpNavigator
SetHelpString Thiết lập giá trị cho thuộc tính HelpString
SetShowHelp Thiết lập giá trị cho thuộc tính ShowHelp

3. ErrorProvider

ErrorProvider giúp báo cho người dùng biết thông tin lỗi của điều khiển trên Form. Thông thường khi điều khiển trên Form lỗi, ErrorProvider sẽ cung cấp một biểu tượng để thông báo lỗi bên cánh điều khiển đó.

winforms bai6 03 PNG

Một số thuộc tính có trong ErrorProvider:

Thuộc tính Mô tả
Icon Chọn biểu tượng thể hiện lỗi của điều khiển
BlinkRate Tốc độ nhấp nháy của biểu tượng trong thuộc tính Icon. Tốc độ tính theo mili giây
BlinkStyle Kiểu nhấp nháy của biểu tượng. Nếu thiết lập giá trị NeverBlink thì biểu tượng sẽ hiển thị mà không nhấp nháy

Một số phương thức của ErrorProvider:

Phương thức Mô tả
SetError (<Điều khiển>, <Thông báo lỗi>) Giúp hiển thị lỗi và thông báo lỗi của điều khiển. Thông báo lỗi hiển thị dưới dạng ToolTip
Clear() Xóa biểu tượng ErrorProvider của điều khiển tương ứng trên Form
GetError() Lấy chuỗi thông báo lỗi của điều khiển

4. Ví dụ sử dụng các điều khiển đặc biệt ToolTrip, HelpProvider, ErrorProvider

Trong phần này mình sẽ thực hiện viết một ứng dụng sử dụng 3 điều khiển đặc biệt trên, cụ thể là thiết kế giao diện như dưới đây sau đó xử lý một số sự kiện theo yêu cầu.

winforms bai6 04 PNG

Yêu cầu:

  • Thiết kế giao diện cho Form giống như Form mẫu ở trên.
  • Khi rê chuột vào ô TextBox "Tên đăng nhập" thì hiển thị dòng ghi chú "Chỉ được nhập ký tự a-z và 0-9".
  • Khi rê chuột vào ô TextBox "Mật khẩu" thì hiển thị dòng ghi chú "Chỉ được nhập ký tự từ 0-9".
  • Khi load Form thì nội dung trong ô TextBox "Mật khẩu" sẽ được mã hóa thành dấu *, khi Tick vào ô "Hiển thị mật khẩu" thì mật khẩu sẽ được hiển thị.
  • Xử lí nút Button "Đăng nhập", nếu hai ô TextBox ở trên không để trống thì thông báo đăng nhập thành công, ngược lại nếu một trong hai để trống thì thông báo điền đầy đủ thông tin.
  • Xử lý nút Button "Thoát" để thoát khỏi chương trình.
  • Khi nhấn F1 thì sẽ hiển thị trang hướng dẫn theo đường link (https://www.spoj.com/PTIT/problems/BCPALIN/).

Các bước thực hiện:

Bước 1: Thiết kế giao diện như Form mẫu, bao gồm:

  • 4 Label với nội dung hiển thị tương ứng.
  • 2 TextBox để nhập tên đăng nhập và mật khẩu.
  • 1 CheckBox để hiển thị mật khẩu.
  • 2 Button để đăng nhập và thoát.
  • 1 ToolTip để hiển thị thông báo lúc rê chuột vào ô TextBox.
  • 1 HelpProvider để tạo đường dẫn hướng dẫn khi nhấn F1.

Bước 2: Xử lý trên nút Button "Đăng nhập".

Sử dụng string.IsNullOrWhiteSpace() để kiểm tra điều kiện ô TextBox không được để trống.

private void btn_dangnhap_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(txt_tendangnhap.Text) || !string.IsNullOrWhiteSpace(txt_matkhau.Text))
            {
                MessageBox.Show("Đăng nhập thành công !!!");
            }
            else
            {
                MessageBox.Show("Vui lòng điền đầy đủ thông tin !!!");
            }
        }

Bước 3: Xử lý trên ô TextBox "Mật khẩu".

Trong TextBox ta sử dụng sự kiện KeyPress để đặt điều kiện cho TextBox.

private void txt_matkhau_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == (char)8))
                e.Handled = true;
        }

Bước 4: Xử lý trên ô CheckBox.

  • Sử dụng Checked để kiểm tra xem ô CheckBox có được tick hay không.
  • Sử dụng PasswordChar để mã hóa cho ô TextBox "Mật khẩu".

*Lưu ý: Trong phần Properties của ô TextBox "Mật khẩu" các bạn cần điền dấu "*" vào thuộc tính PasswordChar.

private void chk_hienthi_CheckedChanged(object sender, EventArgs e)
        {
            if (chk_hienthi.Checked == true)
            {
                txt_matkhau.PasswordChar = (char)0;
            }
            else
            {
                txt_matkhau.PasswordChar = '*';
            }
        }

Bước 5: Xử lý khi rê chuột vào ô TextBox và khi nhấn F1 sẽ hiển thị trang hướng dẫn.

Ta sẽ viết sự kiện ở FormLoad. Sử dụng SetToolTip để viết sự kiện lúc rê chuột vào TextBox và sử dụng HelpNamespace để viết sự kiện khi nhấn F1.

private void Form1_Load(object sender, EventArgs e)
        {
            toolTip1.SetToolTip(txt_tendangnhap, "Chỉ được nhập ký tự a-z và 0-9");
            toolTip1.SetToolTip(txt_matkhau, "Chỉ được nhập ký tự từ 0-9");
            helpProvider1.HelpNamespace = "https://www.spoj.com/PTIT/problems/BCPALIN/";
        }

Kết quả:

winforms bai6 05 PNG

5. Kết luận

Như vậy là chúng ta đã tìm hiểu xong về ba điều khiển đặc biệt trong C# winforms. Đây là một trong các điều khiển rất quan trọng vì vậy hãy nắm rõ nó bằng cách luyện tập thật nhiều nhé. Ở bài tiếp theo, mình sẽ tiếp tục hướng dẫn các bạn cách sử dụng các điều khiển đặc biệt tiếp theo, chú ý theo dõi nhé !!!

Cùng chuyên mục:

Cách dùng Stack (ngắn xếp) trong C#

Cách dùng Stack (ngắn xếp) trong C#

Mình sẽ giới thiệu về các đặc điểm, thuộc tính và phương thức của Stack…

Cách dùng Queue (hàng đợi) trong C#

Cách dùng Queue (hàng đợi) trong C#

Mình sẽ giới thiệu về các đặc điểm, thuộc tính, phương thức của Queue, cũng…

Cách dùng Hashtable (bảng băm) trong C#

Cách dùng Hashtable (bảng băm) trong C#

Cụ thể sẽ tìm hiểu Hashtable là gì? các đặc điểm của nó, cùng với…

Sự kiện Enter và Leave trong C# Winforms

Sự kiện Enter và Leave trong C# Winforms

Trong bài viết này mình sẽ hướng dẫn các bạn cách ...

Sự kiện KeyPress, KeyDown, KeyUp trong C# Winforms

Sự kiện KeyPress, KeyDown, KeyUp trong C# Winforms

Một câu hỏi được đặt ra là làm cách nào để có thể phát hiện…

Sắp xếp trộn trong C# (Merge Sort)

Sắp xếp trộn trong C# (Merge Sort)

Trong bài viết này mình sẽ hướng dẫn các bạn cách sắp xếp các ..

Sắp xếp nổi bọt trong C# (Bubble Sort)

Sắp xếp nổi bọt trong C# (Bubble Sort)

Trong bài viết này mình sẽ hướng dẫn các bạn cách sắp ...

Cách in ra hình tam giác ký tự * trong C#

Cách in ra hình tam giác ký tự * trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách ...

Cách tính tổng các số chẵn từ 1 đến N trong C#

Cách tính tổng các số chẵn từ 1 đến N trong C#

Trước khi đi vào viết chương trình, chúng ta cùng tìm hiểu qua số chẵn…

Cách tính tổng các số lẻ từ 1 đến N trong C#

Cách tính tổng các số lẻ từ 1 đến N trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tính tổng các lẻ…

Cách đếm số chữ số của một số nguyên trong C#

Cách đếm số chữ số của một số nguyên trong C#

Chúng ta cùng xem qua một số ví dụ để hiểu rõ hơn về chương…

Cách tính chu vi và diện tích hình tam giác trong C#

Cách tính chu vi và diện tích hình tam giác trong C#

Tam giác là một loại hình cơ bản trong hình học, có ba đỉnh là…

Cách tính chu vi và diện tích hình tròn trong C#

Cách tính chu vi và diện tích hình tròn trong C#

Trước khi đi vào viết chương trình tính chu vi và diện ..

Cách tính chu vi và diện tích hình chữ nhật trong C#

Cách tính chu vi và diện tích hình chữ nhật trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn ...

Cách xóa phần tử trùng lặp khỏi mảng trong C#

Cách xóa phần tử trùng lặp khỏi mảng trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách loại bỏ các ..

Cách tìm tất cả các chuỗi con của chuỗi đã cho trong C#

Cách tìm tất cả các chuỗi con của chuỗi đã cho trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách tìm ...

Cách xóa các ký tự trùng lặp khỏi chuỗi trong C#

Cách xóa các ký tự trùng lặp khỏi chuỗi trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách xóa các ký tự…

Đếm số lần xuất hiện của ký tự trong chuỗi trong C#

Đếm số lần xuất hiện của ký tự trong chuỗi trong C#

Trong bài viết này minh sẽ hướng dẫn các bạn cách đếm ...

Cách chuyển đổi nhị phân sang thập phân trong C#

Cách chuyển đổi nhị phân sang thập phân trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn cách chuyển đổi số ...

Cách chuyển đổi thập phân sang nhị phân trong C#

Cách chuyển đổi thập phân sang nhị phân trong C#

Số nhị phân là các con số có cơ số là 2. Các số nhị…

Top