Điều khiển ListBox và ComboBox - Phần 1

nguyenac

Administrator
Staff member
18/11/08
22.554
1
38
ListBox và ComboBox là điều khiển hiển thị một danh sách lựa chọn mà người dùng có thể chọn một hoặc nhiều (chỉ dành cho ListBox). Các mục lựa chọn có thể được thêm vào danh sách thông qua lệnh hoặc ở cửa sổ thuộc tính (Property Windows).

Để thêm những lựa chọn vào thời điểm thiết kế, chọn thuộc tính Items trong cửa sổ thuộc tính, một cửa sổ con sẽ hiện ra, String Collection Editor, bạn nhập vào các mục lựa chọn cho danh sách.

Thêm mới các mục lựa chọn cho ListBox, ComboBox
Thứ tự hiển thị của các mục này sẽ hiển thị như hình trên nếu thuộc tính Sorted = False. Nếu thuộc tính Sorted = True, danh sách các mục chọn trong danh sách của ListBox/ComboBox sẽ được tự động sắp xếp theo thứ tự Alphabet.

Để xử lý từng mục chọn trên danh sách của ListBox, bạn xử lý thông qua tập hợp Items. Mục đầu tiên của điều khiển là Items(0), mục thứ hai là Items(1), … Tổng số mục lựa chọn trong danh sách nhận được thông qua thuộc tính Count của tập hợp Items (Items.Count).

Cách xử lý trong trường hợp nhiều lựa chọn cũng được cải tiến. Nếu điều khiển chỉ cho phép một lựa chọn (Single Selection), thuộc tính SelectedIndexSelectedItem sẽ trả về chỉ số và giá trị của mục được chọn. Nếu điều khiển cho phép nhiều lựa chọn (Multi Selection), bạn sẽ sử dụng tập hợp SelectedIndicesSelectedItems để xử lý những chỉ số giá trị của mục được chọn chứ không phải duyệt hết toàn bộ mục có trong ListBox.

Một trong những điểm nổi bật của ListBox trong .NET là phương thức tìm kiếm. Bạn có thể sử dụng phương thức FindStringFindStringExact để xác định vị trí của một mục (Items) trong ListBox. Vị trí đầu tiên trong ListBox được tính từ 0.

Cuối cùng, bạn tìm hiểu hai phương thức mới được .NET giới thiệu nhằm tăng tính năng hiển thị của ListBox/ComboBox trong khi thêm nhiều mục lựa chọn vào điều khiển. Khi thêm nhiều mục (Items) vào cùng một lúc, trước hết bạn gọi phương thức BeginUpdate, sau đó Add hoặc Insert các mục lựa chọn vào danh sách và kết thúc bằng phương thức EndUpdate. Kỹ thuật này tránh trường hợp điều khiển phải vẽ lại khi một mục mới được thêm vào và chỉ vẽ lại khi gọi phương thức EndUpdate.

Thuộc tính cơ bản
ListBoxComboBox cung cấp các thuộc tính chung để xác định các chức năng cơ bản thường hay sử dụng của điều khiển trong quá trình thiết kế.

IntegralHeight

Thuộc tính IntegralHeight = True

Thuộc tính IntegralHeight = False
Đây là một thuộc tính có giá trị luận lý (True/False), IntegralHeight sẽ cho phép hay không cho phép ListBox hiển thị. Khi thuộc tính IntegralHeight = True, ListBox sẽ tự động thay đổi chiều cao để không hiển thị một phần của mục. Ngược lại, ListBox giữ nguyên kích thước. Giá trị mặc định của thuộc tính này là True. Thuộc tính không tác dụng khi không có mục nào.

Items
Đây là tập hợp chứa các mục chọn của điều khiển. Bạn có thể thêm vào mục chọn vào thời điểm thiết kế thông qua cửa sổ String Collection Editor hoặc thông qua lệnh.

MultiColumn
ListBox có thể hiển thị những mục chọn ở nhiều cột nếu bạn đặt giá trị của MultiColumn = True. Giá trị mặc định của thuộc tính này là False.

SelectionMode
Thuộc tính này xác định cách thức chọn các mục trong ListBox. SelectionMode chỉ được phép thay đổi trong quá trình thiết kế, vào lúc thực thi chương trình, thuộc tính này chỉ đọc.

Bảng liệt kê các giá trị của thuộc tính SelectionMode :

Sorted
Khi bạn muốn các mục chọn trong danh sách luôn được sắp xếp (kể cả lúc thêm vào những mục mới), bạn gán giá trị của thuộc tính Sorted = True. Thuộc tính này có thể thay đổi vào lúc thiết kế hoặc lúc thi hành chương trình.

Chú ý : Khi thêm 100.000 mục vào ListBox, với Sorted = False sẽ mất khoảng 4 giây, nhưng nếu Sorted = True phải mất 13 giây vì phải cần thời gian định vị cho các mục. Vì vậy, bạn nên hạn chế sử dụng khi danh sách khá lớn ảnh hưởng đến tốc độ ứng dụng.

Text
Thuộc tính Text trả về giá trị hiển thị của mục được chọn trong điều khiển. Trong trường hợp có nhiều lựa chọn, nó sẽ trả về giá trị của mục được chọn đầu tiên theo thứ tự hiển thị trên ListBox.
 

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