CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 207

207

Chương 6: Windows Form

số sự kiện

KeyPressEventArgs

để hủy bỏ cú nhấn phím không hợp lệ bằng cách đặt thuộc tính

Handled

true

.

Để đầu vào chỉ là số, bạn cần cho phép một cú nhấn phím chỉ khi nó tương ứng với một số (0
đến 9) hoặc một phím điều khiển đặc biệt (như phím delete hoặc mũi tên). Ký tự vừa nhấn
được cấp cho sự kiện

KeyPress

thông qua thuộc tính

KeyPressEventArgs.KeyChar

. Bạn có thể

sử dụng hai phương thức tĩnh của lớp

System.Char

IsDigit

IsControl

để kiểm tra nhanh

ký tự.
Dưới đây là phương thức thụ lý sự kiện mà bạn sẽ sử dụng để ngăn đầu vào không phải số:

private void textBox1_KeyPress(object sender,

System.Windows.Forms.KeyPressEventArgs e) {

if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar)) {

e.Handled = true;

}

}

Chú ý rằng đoạn mã này bỏ qua dấu phân cách thập phân. Để cho phép ký tự này, bạn cần sửa
lại đoạn mã như sau:

// Lấy ký tự phân cách thập phân trên nền này

// ("." đối với US-English).

string decimalString =

Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;

char decimalChar = Convert.ToChar(decimalString);

if (Char.IsDigit(e.KeyChar) || Char.IsControl(e.KeyChar)) {}

else if (e.KeyChar == decimalString &&

textBox1.Text.IndexOf(decimalString) == -1) {}

else {

e.Handled = true;

}

Đoạn mã này chỉ cho phép một dấu phân cách thập phân, nhưng nó không giới hạn số chữ số
có thể được dùng. Nó cũng không cho phép nhập số âm (bạn có thể thay đổi điều này bằng
cách cho phép dấu trừ “-” là ký tự đầu tiên). Nhớ rằng, đoạn mã này cũng giả định bạn đã
nhập không gian tên

System.Threading

.

9.

9.

S d ng

ử ụ

S d ng

ử ụ

ComboBox

ComboBox

có tính năng auto-complete

có tính năng auto-complete

Bạn cần tạo một

ComboBox

tự động hoàn tất những gì người dùng gõ vào dựa trên

danh sách các item của nó.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.