227 votes

Comment rendre une ComboBox non modifiable en .NET ?

Je veux avoir une "sélection uniquement" ComboBox qui fournit une liste d'éléments parmi lesquels l'utilisateur peut choisir. La saisie doit être désactivée dans la partie texte de l'écran. ComboBox contrôle.

La première fois que j'ai cherché sur Google, j'ai trouvé une suggestion trop complexe et malavisée de capturer l'information de l'utilisateur. KeyPress événement.

422voto

Cory Engebretson Points 2866

Pour rendre la partie texte d'une boîte à codes non modifiable, définissez la propriété DropDownStyle sur "DropDownList". La liste combinée est maintenant essentiellement une liste de sélection pour l'utilisateur. Vous pouvez effectuer cette opération dans le concepteur Visual Studio ou en C# comme suit :

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

Lien vers la documentation relative au Propriété ComboBox DropDownStyle sur MSDN.

8 votes

Une chose à garder à l'esprit : si vous faites cela, vous ne pourrez plus mettre à jour la base de données de l'UE. Text de manière programmée, l'utilisait pour afficher un message par défaut en utilisant la propriété ComboBox.SelectedIndex = -1;

0 votes

Existe-t-il un moyen de le faire via l'interface graphique de Visual C# sans avoir à le modifier dans le code ? Il semble qu'une "valeur par défaut" serait une chose normale à vouloir mettre en place.

7 votes

Comment éviter l'apparition du gris ?

76voto

invertigo Points 2198

Pour ajouter une référence à l'interface utilisateur graphique de Visual Studio, vous pouvez trouver le fichier DropDownStyle sous les propriétés de la ComboBox sélectionnée :

enter image description here

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

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

33voto

LZara Points 87

Restez sur votre ComboBox et recherchez la propriété DropDropStyle dans la fenêtre des propriétés puis choisissez Liste DropDownList .

2voto

Abhishek Jaiswal Points 943
COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;

1voto

Diogo Rodrigues Points 168

Pour continuer à afficher les données dans l'entrée après la sélection, faites-le :

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;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X