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
là
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
là
IsDigit
và
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ó.