2008-08-18 82 views
5

Cách tốt nhất để triển khai tùy chọn đa lựa chọn trong Windows Forms là gì? Tôi muốn thực thi một lựa chọn duy nhất từ ​​một danh sách, bắt đầu với một giá trị mặc định.Nhiều lựa chọn trên WinForms

Dường như một ComboBox sẽ là một lựa chọn tốt, nhưng có cách nào để chỉ định giá trị mặc định không trống không?
Tôi chỉ có thể đặt mã trong mã tại một số điểm khởi tạo thích hợp, nhưng tôi cảm thấy như tôi đang thiếu thứ gì đó.

Trả lời

8

Nếu bạn chỉ muốn một câu trả lời từ nhóm, thì điều khiển RadioButton sẽ phù hợp nhất với bạn hoặc bạn có thể sử dụng ComboBox nếu bạn sẽ có nhiều tùy chọn. Để đặt giá trị mặc định, chỉ cần thêm mục vào bộ sưu tập của ComboBox và đặt SelectedIndex hoặc SelectedItem thành mục đó.

Tùy thuộc vào số lượng tùy chọn bạn đang xem, bạn có thể sử dụng ListBox với thuộc tính SelectionMode được đặt thành MultiSimple, nếu nó sẽ là nhiều lựa chọn hoặc bạn có thể sử dụng kiểm soát Hộp kiểm.

2

Sử dụng ComboBox.SelectedItem hoặc SelectedIndex tài sản sau khi các mặt hàng đã được đưa vào để chọn mục mặc định.

Bạn cũng có thể xem xét sử dụng điều khiển RadioButton để thực thi lựa chọn một tùy chọn duy nhất.

2

Bạn có thể sử dụng ComboBox với thuộc tính DropDownStyle được đặt thành DropDownList và SelectedIndex là 0 (hoặc bất kỳ mục mặc định nào). Điều này sẽ buộc luôn có một mục từ danh sách được chọn. Nếu bạn quên làm điều đó, người dùng có thể chỉ cần gõ một cái gì đó khác vào phần chỉnh sửa hộp - đó sẽ là xấu :)

1

Nếu bạn đang cung cấp cho người dùng một danh sách nhỏ các lựa chọn sau đó gắn với các nút radio. Tuy nhiên, nếu bạn muốn sử dụng hộp tổ hợp cho danh sách động hoặc dài. Đặt kiểu cho DropDownList.

private sub populateList(items as List(of UserChoices)) 
    dim choices as UserChoices 
    dim defaultChoice as UserChoices 

    for each choice in items 
     cboList.items.add(choice) 
     '-- you could do user specific check or base it on some other 
     '---- setting to find the default choice here 
     if choice.state = _user.State or choice.state = _settings.defaultState then 
      defaultChoice = choice 
     end if 
    next 
    '-- you chould select the first one 
    if cboList.items.count > 0 then 
     cboList.SelectedItem = cboList.item(0) 
    end if 

    '-- continuation of hte default choice 
    cboList.SelectedItem = defaultChoice 

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