【问题标题】:ComboBox.MaxDopDownItems is not working when adding items using the Click event使用 Click 事件添加项目时,ComboBox.MaxDopDownItems 不起作用
【发布时间】:2010-10-06 01:19:29
【问题描述】:

我正在使用 Click 事件用列表填充 ComboBox 项。当它已经被填充时,MaxDropDownItems 不起作用。有谁知道如何解决这个问题?

代码如下:

    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 设置为 5,因此组合框应至少显示 5 个项目:

【问题讨论】:

    标签: c# winforms combobox onclick


    【解决方案1】:

    您需要在设置控件时将ComboBox.IntegralHeight property 设置为false(默认为true)。来自 MSDN:

    当此属性设置为 true 时, 控件自动调整大小为 确保项目不是部分 显示。如果你想维护 ComboBox 的原始大小基于 表格的空间要求, 将此属性设置为 false。

    在将组合框添加到 Controls 集合之前添加此行:

    cb.IntegralHeight = false;
    

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 2023-04-04
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多