Question

Je souhaite 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 sur ce sujet a donné lieu à une suggestion trop complexe et peu judicieuse de capturer l'événement KeyPress .

Était-ce utile?

La solution

Pour que la portion de texte d'un objet 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 ComboBox DropDownStyle propriété sur MSDN.

Autres conseils

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

entrer la description de l'image ici

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

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

Restez dans votre zone de liste déroulante et recherchez la propriété DropDropStyle dans la fenêtre des propriétés, puis choisissez DropDownList .

COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;

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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top