2011-01-27 65 views
13

Trong bối cảnh của một dữ liệu-bound ComboBoxValueMemberDisplayMember tính được một cách thích hợp thiết lập:ComboBox sự kiện: SelectedIndexChanged vs SelectedValueChanged

Có một sự khác biệt giữa các SelectedIndexChangedSelecetedValueChanged các sự kiện? Chúng có được kích hoạt đồng thời khi một mục được chọn từ danh sách thả xuống của ComboBox không?

Trả lời

22

Vâng, chỉ vì thay đổi chỉ mục của bạn không nhất thiết có nghĩa là giá trị của bạn phải thay đổi.

Điều này cũng có thể không phải là kịch bản thực tế nhất bởi vì thiết kế khôn ngoan việc triển khai này sẽ là xấu.

Giả sử bạn đang hiển thị ComboBox nơi bạn đang hiển thị các bộ phận cơ thể. Tuy nhiên, bạn có thể xuất hoặc lưu trữ thông tin này theo định dạng được ánh xạ tới các giá trị số nguyên. Do đó, ComboBox của bạn có thể hiển thị "Left Arm" và "Right Arm" được ánh xạ tới giá trị là 5, xác định (5 = Upper Body) trong ánh xạ của nó. Sau đó, nếu người dùng chuyển "Cánh tay phải" sang "Cánh tay trái" thì không có thay đổi giá trị; tuy nhiên, SelectedIndex đã thay đổi.

Vì vậy, tôi đoán đó là trường hợp theo từng trường hợp, nhưng những sự kiện này chắc chắn có thể hoạt động khác nhau tùy thuộc vào từng trường hợp.

0

Sự khác biệt là SelectedItemChange sẽ là -1 nếu bạn chỉnh sửa combobox không phải là một phần của các giá trị được lập chỉ mục. Tuy nhiên ngay sau khi bạn bắt đầu gõ vào combobox nó sẽ kích hoạt sự kiện thay đổi giá trị.

ea bạn có thể sử dụng thay đổi giá trị để kích hoạt sự kiện sẽ định dạng lại nhập văn bản trong điều khiển kiểm soát miền. Và nếu ai đó chỉnh sửa quyền kiểm soát miền và giá trị của nó trở thành -1, bạn có thể thu thập các mục mới vào danh sách của nó (bằng cách nhấn một nút và sử dụng thuộc tính domainupdown.text.

Các vấn đề liên quan