Comment peut-I du programme, sélectionnez un élément dans une listbox?
J'ai une zone de liste afficher les éléments d'une énumération. Je veux sélectionner/mettre en surbrillance la valeur actuelle (lire à partir d'une base de données) lorsque la zone de liste affiche/le formulaire s'ouvre. Ce code, si:
lblSelectedPrinter.Text = AppSettings.ReadSettingsVal("beltprinter");
listBoxBeltPrinters.SelectedItem = listBoxBeltPrinters.Items.IndexOf(lblSelectedPrinter.Text);
...ne fonctionne pas. J'ai vu un exemple d'utilisation de "GetItemAt" ici (Par programmation de la sélection des Items/Index dans une ListBox) mais mon dépouillé et archaïque de la version de C# (.NET 1.1, C# 2) n'a pas une telle bestiole.
Mise à JOUR
J'ai pensé que ce serait le travail:
string currentPrinter = AppSettings.ReadSettingsVal("beltprinter");
lblSelectedPrinter.Text = currentPrinter;
int currentPrinterIndex = listBoxBeltPrinters.Items.IndexOf(currentPrinter);
listBoxBeltPrinters.SelectedItem = currentPrinterIndex;
...mais, aussi, de ne pas (l'actuel de l'imprimante s'affiche dans le label, mais l'entrée correspondante/valeur dans la zone de liste n'est pas sélectionné).
- quelle est l'erreur n'est-il indiqué dans le débogueur @Argile?
- Pas de débogueur; mes "débogueur" est MessageBox.Show() en raison de la cobwebby la nature de ces outils.
- pouvez-vous mettre dans un try catch et de lancer l'exception pour nous?
- Merci pour votre aide, AmitApollo (je me souviens quand vous avez combattu Rocheux, par la voie). Il n'y a pas d'exception, il n'était tout simplement pas de travail. Il est maintenant; j'ai répondu à ma propre question.
- Ouais, le D*mn russe m'a tué en le quatrième! +1 pour le bravant .NET 1.1/2.0. Le temps de sauter dans le en 2010 😉
- Ne vous inquiétez pas, à la maison, j'utilise VS2012 et je suis surtout maintenant avec jQuery*
InformationsquelleAutor B. Clay Shannon | 2013-08-02
Vous devez vous connecter pour publier un commentaire.
Je vois que vous avez déjà résolu ce problème, mais pourquoi ne pas le faire, le moyen le plus éprouvé?
De cette façon, vous savez que le
SelectedIndex
valeur est définie sur -1 dès que les modifications du texte, et s'il est trouvé dans votreListBox
, cet élément est sélectionné.Encore mieux serait d'écrire un gestionnaire d'où l'Étiquette de contrôle
lblSelectedPrinter
les feux de laTextChanged
événement.Ensuite, créez de ce Gestionnaire d'Événement comme indiqué ci-dessus:
Vous avez déjà résolu votre problème, donc, c'est juste de la nourriture pour la pensée.
Vous en avez besoin pour être un entier. Vous pouvez utiliser des int.Analyser pour Convertir la lancer à partir de string en int.
Par valeur:
Cela fonctionne:
C'est le seul code nécessaire pour afficher, lire et écrire les paramètres de val:
pouvez-vous essayer le suivant??? Il prend à partir de votre code, puis utilise FindString
Cela fonctionne:
Combinaison de
listBoxObject.SetSelected()
etlistBoxObject.FindString()
est une solution élégante. Il fonctionne pour moi, trop.