Je construis une chaîne et le code ressemble à
String status = "The status of my combobox is " + comboBoxTest.SelectedText
J'utilise WinForm dans VS2010
Le résultat ressemble à
"Le statut de ma combobox est"
De la documentation :
Vous pouvez utiliser la propriété SelectedText pour extraire ou modifier le texte actuellement sélectionné dans un contrôle ComboBox. Cependant, vous devez savoir que la sélection peut changer automatiquement en raison de l'interaction de l'utilisateur. Par exemple, si vous récupérez la valeur SelectedText dans un gestionnaire d'événements Button Click, la valeur sera une chaîne vide. Cela est dû au fait que la sélection est automatiquement effacée lorsque le focus de saisie passe de la liste déroulante au bouton.
Lorsque la zone de liste déroulante perd le focus, le point de sélection se déplace au début du texte et le texte sélectionné n'est plus sélectionné. Dans ce cas, obtenir la propriété SelectedText récupère une chaîne vide et définir la propriété SelectedText ajoute la valeur spécifiée au début du texte.
Je pense que vous n’avez pas besoin de SelectedText
mais vous pouvez en avoir besoin
String status = "The status of my combobox is " + comboBoxTest.Text;
Je fais face à ce problème 5 minutes avant.
Je pense qu'une solution (avec Visual Studio 2005) est:
myString = comboBoxTest.GetItemText(comboBoxTest.SelectedItem);
Pardonne-moi si je me trompe.
Pour obtenir l'élément sélectionné, vous devez utiliser la propriété SELECTEDITEM de comboBox. Et puisqu'il s'agit d'un objet, si vous voulez l'assigner à une chaîne, vous devez le convertir en chaîne en utilisant la méthode ToString ():
string myItem = comboBox1.SelectedItem.ToString(); //this does the trick
Essaye ça:
String status = "The status of my combobox is " + comboBoxTest.text;
Voici comment je voudrais aborder le problème, en supposant que vous vouliez changer le texte de say, une étiquette
private void comboBoxtest_SelectedIndexChanged(object sender, EventArgs e)
{
var combotext = comboBoxtest.Text;
var status = "The status of my combo box is" + combotext;
label1.Text = status;
}
Si vous liez votre Combobox à quelque chose comme KeyValuePair, avec des propriétés dans le constructeur comme suit ...:
DataSource = dataSource,
DisplayMember = "Value",
ValueMember = "Key"
donc dataSource
est de type KeyValuePair ...
Vous finissez par avoir à faire cela ...
string v = ((KeyValuePair)((ComboBox)c).SelectedItem).Value;
(J'avais une forme dynamique - où c
était de type Control
- donc je devais le transtyper dans ComboBox)