web-dev-qa-db-fra.com

Comment puis-je rendre une ComboBox non modifiable dans .NET?

Je veux avoir un "select-only" ComboBox qui fournit une liste d'éléments parmi lesquels l'utilisateur peut faire son choix. La saisie doit être désactivée dans la partie texte du contrôle ComboBox.

Ma recherche initiale de ceci a donné lieu à une suggestion trop complexe et peu judicieuse pour capturer l'événement KeyPress.

194
Cory Engebretson

Pour que la portion de texte d'un ComboBox ne puisse pas être modifiée, définissez la propriété DropDownStyle sur "DropDownList". La ComboBox est maintenant essentiellement sélectionnée uniquement pour l'utilisateur. Vous pouvez le faire dans le concepteur Visual Studio ou en C # comme ceci:

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

Lien vers la documentation de propriété ComboBox DropDownStyle sur MSDN.

360
Cory Engebretson

Pour ajouter une référence à l'interface graphique Visual Studio, vous pouvez trouver les options DropDownStyle sous les propriétés du ComboBox sélectionné:

enter image description here

Ce qui ajoutera automatiquement la ligne mentionnée dans la première réponse au Form.Designer.cs InitializeComponent(), comme ceci:

this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
62
invertigo

Restez sur votre zone de liste déroulante et recherchez la propriété DropDropStyle à partir de la fenêtre Propriétés, puis choisissez DropDownList.

30
LZara

COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;

2
Abhishek Jaiswal

Pour continuer à afficher les données dans l'entrée après la sélection, procédez comme suit:

VB.NET
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
    e.Handled = True
End Sub



C#
Private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = true;
}
1
Diogo Rodrigues