【问题标题】:How to prevent manual input into a ComboBox in C#如何防止在 C# 中手动输入到 ComboBox 中
【发布时间】:2012-03-27 17:59:11
【问题描述】:

我在 C# 中有一个使用 ComboBox 的表单。 如何防止用户在 C# 中的 ComboBox 中手动输入文本?

this.comboBoxType.Font = new System.Drawing.Font("Arial", 15.75F);
this.comboBoxType.FormattingEnabled = true;
this.comboBoxType.Items.AddRange(new object[] {
            "a",
            "b",
            "c"});
this.comboBoxType.Location = new System.Drawing.Point(742, 364);
this.comboBoxType.Name = "comboBoxType";
this.comboBoxType.Size = new System.Drawing.Size(89, 32);
this.comboBoxType.TabIndex = 57;   

我希望 A B C 是唯一的选择。

【问题讨论】:

标签: c# string combobox


【解决方案1】:

只需将您的组合设置为 DropDownList:

this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList;

【讨论】:

  • 这样做,不允许我输入默认的“选择项目”文本吗?
  • 只需添加this.comboBoxType.SelectedIndex = 0; 将“默认”设置为上面代码块末尾的第一项。
【解决方案2】:

我相信您想将 DropDownStyle 设置为 DropDownList。

this.comboBoxType.DropDownStyle = 
    System.Windows.Forms.ComboBoxStyle.DropDownList;

或者,您可以从 WinForms 设计器中执行此操作,方法是选择控件,转到“属性”窗口,然后将“DropDownStyle”属性更改为“DropDownList”。

【讨论】:

    【解决方案3】:

    您可以通过将e.Handled = true 添加到控件的 KeyPress 事件来禁止按键处理:

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

    【讨论】:

    • 您仍然可以右键单击组合框中的选定文本并点击剪切,瞧,文本消失了
    • 甚至可以删除角色。
    【解决方案4】:

    我喜欢保留手动插入内容的能力,但将所选项目限制为列表中的内容。 我会将此事件添加到组合框。只要你得到的是 SelectedItem 而不是 Text,你就得到了正确的预定义项目; a、b 和 c。

    private void cbx_LostFocus(object sender, EventArgs e)
    {
      if (!(sender is ComboBox cbx)) return;
      int i;
      cbx.SelectedIndex = (i = cbx.FindString(cbx.Text)) >= 0 ? i : 0;
    }
    

    【讨论】:

      【解决方案5】:

      那为什么要使用 ComboBox?

      C# 有一个名为Listbox 的控件。从技术上讲,ComboBox 与 Listbox 的区别在于 ComboBox 可以接收输入,所以如果它不是您需要的控件,那么我建议您使用 ListBox

      Listbox消费指南在这里:C# ListBox

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-23
        • 1970-01-01
        • 1970-01-01
        • 2011-05-28
        • 1970-01-01
        • 2011-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多