Question

J'écris une interface graphique en C #, Visual Studio 2008, à l'aide de Designer et de WinForms. J'ai un contrôle ComboBox, et j'aimerais qu'il permette uniquement de sélectionner l'une des options fournies et de ne pas accepter une chaîne entrée par l'utilisateur. Il ne semble pas avoir de propriété en lecture seule et sa désactivation nuit à la lisibilité du contrôle (ainsi qu’à l’interdiction de la sélection de l’utilisateur).

Était-ce utile?

La solution

Définissez DropDownStyle sur "DropDownList"

Autres conseils

Définissez la propriété ComboBox.DropDownStyle sur ComboBoxStyle.DropDownList.

Un autre moyen simple de s'y prendre.

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

Utilisez un code similaire au suivant pour définir les options autorisées et uniquement ces options.

comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.AddRange(new object[] {
    "One",
    "Two",
    "Three",
    "Four"});

Essayez d’utiliser une DropDownListbox

Mon exigence: une fois que l'utilisateur donne une entrée via une liste déroulante, il ne peut pas modifier la valeur avant de l'envoyer. Ils ne peuvent lire que cette valeur.

Selon mes besoins, je fais les choses suivantes.

1) Obtenez les entrées de l'utilisateur via la liste déroulante.
2) Copiez la valeur de la liste déroulante dans une zone de texte (en lecture seule et invisible).
3) False la visibilité de la liste déroulante.
4) True la visibilité de la zone de texte en lecture seule.

Faites cela avec les événements.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top