2010-10-06 30 views
8

Tôi đang điền các mục ComboBox với danh sách bằng sự kiện Nhấp chuột. Khi nó đã được phổ biến, MaxDropDownItems không hoạt động. Có ai biết cách sửa lỗi này không?ComboBox.MaxDopDownItems không hoạt động khi thêm các mục bằng sự kiện Nhấp chuột

Dưới đây là các mã:

List<string> list = new List<string>(); 
    ComboBox cb; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     cb = new ComboBox(); 

     cb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 
     cb.FlatStyle = System.Windows.Forms.FlatStyle.Popup; 
     cb.FormattingEnabled = true; 
     cb.Size = new System.Drawing.Size(94, 21); 
     cb.MaxDropDownItems = 5; 
     cb.Click +=new EventHandler(cb_Click); 

     this.Controls.Add(cb); 
    } 

    private void cb_Click(object sender, EventArgs e) 
    { 
     foreach (string str in list) 
     { 
      cb.Items.Add(str); 
     } 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     list.Add("1");list.Add("2");list.Add("3"); 
     list.Add("4");list.Add("5");list.Add("6"); 
     list.Add("7"); 
    } 

MaxDropDownItems được thiết lập để 5 để combobox ít nhất sẽ hiển thị 5 mục chỉ: alt text

Trả lời

17

Bạn cần phải đặt ComboBox.IntegralHeight property-false khi bạn thiết lập kiểm soát của bạn (giá trị mặc định là true). Từ MSDN:

Khi thuộc tính này được thiết lập là true, các kiểm soát tự động thay đổi kích thước để đảm bảo rằng một mục không phải là một phần hiển thị. Nếu bạn muốn duy trì kích thước ban đầu của ComboBox dựa trên các yêu cầu về không gian của biểu mẫu, đặt thuộc tính này thành false.

Thêm dòng này trước khi bạn thêm combobox đến Controls bộ sưu tập:

cb.IntegralHeight = false; 
Các vấn đề liên quan