2012-03-10 8 views
32

Ho un modulo in C# che utilizza uno ComboBox. Come impedire a un utente di inserire manualmente il testo nello ComboBox in C#?Come impedire l'inserimento manuale in un ComboBox in C#

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; 

Desidero che A B C sia l'unica opzione.

risposta

94

Basta impostare la vostra combo come DropDownList:

this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList; 
13

Credo che si voglia impostare DropDownStyle su DropDownList.

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

È possibile aggiungere e.Handled = true nel vostro evento Pressione:

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

È ancora possibile fare clic con il testo selezionato nella casella combinata e ha colpito Cut, voilà, testo scomparso – ajeh

-1
private void cmbDatesShipment_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = true; 
} 
+2

È una ripetizione di [questa risposta esistente] (http://stackoverflow.com/questions/9648381/how-to-prevent-manual-input-into-a-combobox-in-c-sharp/13561097# 13561097)? – Pang

1

Perché utilizzare ComboBox allora?

C# ha un controllo chiamato Listbox. Tecnicamente differenza di un ComboBox su una casella di riepilogo è che un ComboBox in grado di ricevere in ingresso, quindi se non è il controllo necessario, allora vi consiglio di utilizzare ListBox

Listbox guida Consumo qui: C# ListBox

5

Dalla finestra delle proprietà per il controllo , rendere DropDownStyle uguale a DropDownList.

0

Ciò blocca Combobox inserimento manuale e visualizza solo gli elementi comboboxlist

this.yourcomboBoxname.DropDownStyle = ComboBoxStyle.DropDownList; 
Problemi correlati