Điều khiển Textbox

china

Administrator
19/11/08
8.875
2
38
34
tapchiict.com
Textbox là điều khiển được dùng để hiển thị và nhập dữ liệu. Đây là một trong những điều khiển thường dùng nhất trong Windows.

Textbox có thể chứa đến 2 tỷ ký tự và có thể xử lý riêng lẻ từng dòng văn bản có trong Textbox thông qua thuộc tính Lines. Thuộc tính Lines là một mảng chuỗi. Mỗi phần tử trong mảng giữ giá trị của 1 dòng văn bản. Lines(0) chứa dữ liệu dòng đầu tiên, Lines(1) chứa dữ liệu dòng thứ 2, … Số dòng văn bản trong điều khiển Textbox sẽ được nhận thông qua Lines.Length.

Thuộc tính cho phép bạn chọn khối văn bản trong Textbox như SelStart, SelLengthSelText đã được đổi tên mới SelectionStart, SelectionLength và SelectedText. Thuộc tính TextAlignment dùng để canh lề văn bản trong Textbox. Phương thức AppendText cho phép bạn thêm nội dung văn bản vào điều khiển với tốc độ thi hành nhanh hơn phép gán :
Textbox là một điều khiển dùng để nhập liệu rất linh hoạt, nó thường được sử dụng để nhập liệu một hoặc nhiều dòng văn bản như số, mật khẩu hoặc những ký tự văn bản.

Trừ những ứng dụng đồ họa, Textbox không thể thiếu đối với các ứng dụng trong Windows.

Sử dụng Textbox
Các thuộc tính cơ bản

1/- BorderStyle
Như Label.

2/- CharacterCasing
Quy định văn bản nhập vào trên điều khiển sẽ hiển thị như thế nào :
- Normal : mặc định, bình thường như được nhập vào.
- Lower : chuyểns ang chữ thường.
- Upper : chuyển sang chữ HOA.

3/- MultiLine
Thuộc tính MultiLine cho phép Textbox hiển thị 1 hay nhiều dòng văn bản. Mặc định, thuộc tính này chỉ cho phép Textbox hiển thị một dòng văn bản (False).

4/- ScrollBars
Thuộc tính ScrollBars sẽ cho phép gắn thêm thanh cuộn (ScrollBar) vào Textbox nếu văn bản đang thể hiện trong Textbox vượt quá kích thước của điều khiển.

Textbox có thuộc tính MultiLine = False không thể có thanh cuộn cho dù nội dung văn bản thể hiện bên trong có vượt quá kích thước của điều khiển.

5/- WordWrap
Thuộc tính này cho phép (hoặc không cho phép) nội dung của Textbox tự động xuống dòng khi kích thước (ngang) của điều khiển không đủ để hiển thị phần nội dung trong Textbox.

Giá trị mặc định của thuộc tính WordWrap = True cho phép tự động xuống dòng.

Như vậy, khi thuộc tính WordWrap của Textbox = True sẽ không có thanh cuộn ngang. Ngay cả khi thuộc tính ScrollBars của Textbox có giá trị là Horizontal, thuộc tính này cũng sẽ bị bỏ qua khị WordWrap của Textbox có giá trị là True.

Thuộc tính WordWrap của Textbox = True

Thuộc tính WordWrap của Textbox = False

6/- AcceptsReturn, AcceptsTab
Hai thuộc tính AcceptsReturn, AcceptsTab cho phép Textbox xử lý với sự kiện nhấn phím EnterTab. Nếu có một nút mặc định trên form (thuộc tính AcceptButton của form) thì nút lệnh này sẽ được kích hoạt để thi hành khi người dùng nhấn phím Enter mặc dù nó không được focus.

Tuy nhiên, đối với Textbox có thuộc tính MultiLine = True, nếu bạn muốn sử dụng phím Enter để chuyển sang dòng mới, bạn sẽ gán thuộc tính AcceptsReturn = True.

Mặc định, thuộc tính AcceptsReturn = False. Trong trường hợp này, muốn sang dòng mới đối với Textbox có thuộc tính MultiLine = True, bạn phải sử dụng Ctrl + Enter.

Phím Tab dùng để chuyển focus từ điều khiển này sang điều khiển kế tiếp trong Tab Order. Tuy nhiên nếu bạn muốn chèn vào nội dung Textbox ký tự Tab thì bạn phải thay đổi giá trị của thuộc tính AcceptsTab = True. Lúc này, để chuyển sang điều khiển kế tiếp trong Tab Order, bạn sử dụng Ctrl + Tab. Đối với những điều khiển khác vẫn sử dụng phím Tab bình thường (ngoại trừ Textbox có thuộc tính AcceptsTab = True).

7/- MaxLength
Thuộc tính MaxLength giới hạn kích thước tối đa của dữ liệu trong Textbox. Giá trị mặc định của thuộc tính này là 32767.

Nếu đặt giá trị MaxLength = 0, nó có thể chứa dữ liệu lên đến 2GB (chính xác là 2.147.484.647 ký tự).

Các thuộc tính về văn bản
Hầu hết những thuộc tính sau đều cho phép xử lý lúc thi hành chương trình.

1/- Text

Thay đổi giá trị hiển thị của Textbox nhiều dòng qua hộp hội thoại
Đây là một trong những thuộc tính quan trọng của Textbox. Để gán giá trị hiển thị của Textbox trong lúc thiết kế :
- Đối với Textbox một dòng (MultiLine Line = False) : đánh giá trị vào thuộc tính Text.
- Đối với Textbox nhiều dòng (MultiLine Line = True) : đánh giá trị vào thuộc tính Lines thông qua hộp thoại String Collection Editor.

Thuộc tính Text của điều khiển Textbox là một đối tượng thuộc lớp String, do đó nó cũng có những phương thức của đối tượng String.

Để xóa nội dung của Textbox :

Hoặc dùng phương thức Clear :

Để thêm vào nội dung của Textbox, bạn sử dụng phương thức AppendText :

2/ ReadOnly
Khi thuộc tính ReadOnly = True, người dùng sẽ không thể hiệu chỉnh nội dung trong Textbox (chỉ có thể hiệu chỉnh thông qua lệnh).

3/- Lines
Hỗ trợ cho thuộc tính Text, bạn có thể xử lý phần nội dung thể hiện trong Textbox thông qua thuộc tính Lines. Tuy nhiên, không như Text, thuộc tính Lines là thuộc tính chỉ đọc.

Số dòng trong Textbox lấy được thông qua thuộc tính Lines.Length

4/- PasswordChar
Thay thế những ký tự hiển th5i trong Textbox bằng một ký tự đặc biệt, ví dụ có thể thay đổi thuộc tính này thành * dùng để nhập mật khẩu.

Textbox hỗ trợ 3 thuộc tính dùng để chọn một phần nội dung của Textbox thông qua lệnh.

Các thuộc tính Text-Selection

1/- SelectedText
Trả về phần nội dung được lựa chọn trong Textbox. Bạn có thể thay thế phần nội dung (được lựa chọn) bằng giá trị mới.

2/- SelectionStart, SelectionLength
SelectionStart trả về vị trí đầu tiên của ký tự được chọn trong Textbox. SelectionLength trả về chiều dài của chuỗi được chọn trong Textbox.

Ví dụ : tìm và chọn khối chứa chữ .Net trong Textbox.

3/- HideSelection
Khối văn bản được chọn trong Textbox sẽ không được tô đậm khi focus nằm ở điều khiển khác, muốn khối văn bản được chọn luôn được tô khi không có focus, bạn gán thuộc tính HideSelection = True.

Phương thức Text-Selection

Select (Bắt đầu, Số ký tự)
Chọn khối văn bản từ ký tự tại vị trí bắt đầu với chiều dài là số ký tự. Bắt đầu được tính giá trị từ 0.
Ví dụ : Textbox1 chứa chuỗi ABCDEFGHI, để chọn các ký tự DEFG, bạn dùng lệnh :

Phục hồi văn bản
Để phục hồi lại phương thức vừa mới xảy ra trên Textbox thông qua lệnh Undo, bạn cần kiểm tra giá trị của thuộc tính CanUndo. Nếu CanUndo = True, phương thức Undo mới có tác dụng phục hồi lại hiệu chỉnh mới nhất trrên Textbox.

Thuộc tính CanUndo
Khi thuộc tính CanUndo = True, điều khiển Textbox sẽ cho phép phục hồi lại phương thức cuối mà bạn vừa hiệu chỉnh trên Textbox.

Phương thức Undo
Phương thức Undo chỉ có thể phục hồi lại các thay đổi xảy ra gần đây nhất trên Textbox. Nếu gọi phương thức này lần đầu, Textbox sẽ phục hồi lại giá trị cũ vừa mới bị hiệu chỉnh. Nếu gọi tiếp tục lần nữa, nó sẽ trở về giá trị mới vừa hiệu chỉnh (Redo).

Phương thức ClearUndo
Bạn có thể vô hiệu hóa chức năng Redo thông qua phương thức ClearUndo.
Phương thức này sẽ xóa đi bộ nhớ Redo trên điều khiển và không cho phép Redo.

Bắt sự kiện bàn phím
Để lập trình cho sự kiện KeyDown, KeyUp ta phải biết mã phím (KeyCode) cần xử lý. Ví dụ : mã phím của F1 là 112 (Keys.F1), F2 là 113 (Keys.F2), …

Ví dụ cho sự kiện KeyUp : chương trình sẽ chèn tự động các chuỗi : ngày hiện hành, giờ hiện hành, "Trung tâm tin học – ĐH Bách khoa", "Nhóm chuyên môn lập trình" khi người dùng nhấn các phím F5, F6, F7, F8 tại điều khiển Textbox.

Sự kiện KeyUp
Để kiểm tra trạng thái của các phím Shift, Ctrl, Alt, bạn sử dụng các thuộc tính Control, Alt, Shift của đối tượng e (tham số của sự kiện).

Ví dụ : kiểm tra phím CtrlAlt có được nhấn không.

Mặc dù Windows hỗ trợ người dùng bẫy sự kiện của các nút chức năng, tuy nhiên, bạn nên tránh bẫy những sự kiện mà Windows đã dùng như F1 (gọi chức năng giúp đỡ), Alt + F4, Ctrl + F4 (đóng cửa sổ).

Một điều cần lưu ý khi xử lý sự kiện KeyDown, KeyUp, KeyPress, … : thuộc tính KeyChar, KeyCode của đối tượng e (e.KeyCode/e.KeyChar), tham số của sự kiện là thuộc tính chỉ đọc không thể thay đổi giá trị. Để ng8n chặn một trong các sự kiện trên tiếp tục xảy ra ngay trong sự kiện, bạn cho thuộc tính Handled của đối tượng e (tham số sự kiện) = True.
 

Facebook Comment

Find Diễn đàn Công nghệ thông tin và truyền thông on mobile

Thành viên trực tuyến

Không có thành viên nào trực tuyến.

Thống kê diễn đàn

Chủ đề
31.050
Bài viết
33.103
Thành viên
5.957
Thành viên mới nhất
susu93439

Mobile app users
0
Latest mobile user

Tài nguyên mới