2008-10-02 28 views
21

Tôi đang viết GUI trong C#, Visual Studio 2008, bằng cách sử dụng Trình thiết kế và WinForms. Tôi đã có một điều khiển ComboBox, và tôi muốn nó chỉ cho phép lựa chọn từ các tùy chọn được cung cấp và không chấp nhận một chuỗi người dùng nhập vào. Dường như nó không có thuộc tính ReadOnly và việc vô hiệu hóa nó gây trở ngại cho khả năng đọc của điều khiển (cũng như không cho phép người dùng lựa chọn).Comboon chỉ đọc trong WinForms

+0

Thuộc tính DropDownStyle là thứ tôi đang tìm kiếm. Không thể tin rằng tôi đã bỏ qua điều đó. –

+3

bản sao có thể có của [Làm thế nào tôi có thể tạo một ComboBox không thể chỉnh sửa trong .net?] (Http://stackoverflow.com/questions/85702/how-can-i-make-a-combobox-non-editable-in- net) – nawfal

Trả lời

46

Set DropDownStyle để "DropDownList"

+1

Nhưng sau đó bạn không thể thao tác theo chương trình combobox. – clamchoda

1

Hãy thử sử dụng một DropDownListbox

6

Thiết lập thuộc tính ComboBox.DropDownStyle để ComboBoxStyle.DropDownList.

2

Sử dụng mã tương tự như sau để đặt các tùy chọn được phép và chỉ những tùy chọn đó.

comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; 
comboBox1.Items.AddRange(new object[] { 
    "One", 
    "Two", 
    "Three", 
    "Four"}); 
3

Một cách đơn giản khác để thực hiện.

private void combobox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = true; 
} 
0

yêu cầu của tôi: khi người dùng đưa ra một đầu vào thông qua hộp kết hợp họ không thể thay đổi giá trị trước khi trình. Họ chỉ có thể đọc giá trị đó.

Theo yêu cầu của tôi, tôi làm những việc sau đây.

1) Nhận dữ liệu nhập từ người dùng thông qua hộp tổ hợp. 2) Sao chép giá trị của hộp tổ hợp vào hộp văn bản (chỉ đọc và ẩn).
3) Sai hiển thị hộp tổ hợp.
4) Đúng hiển thị của hộp văn bản chỉ đọc.

Thực hiện việc này với sự kiện.