Comment créer un menu déroulant en WinForms et C#
Je suis nouveau à l'aide de Visual Studio/WinForms/C#
Je suis en train de créer un simple menu déroulant où chaque valeur peut avoir une valeur et une étiquette.
C'est ce que je voudrais faire en HTML si j'étais la création d'une application web. Mais comment puis-je le faire avec C# et WinForms?
<select>
<option value="0">Please select One</option>
<option value="1">The first Options</option>
<option value="2">The Second Options</option>
<option value="3">The Third Options</option>
</select>
J'ai essayé ComboBox, mais il semble que je ne suis pas autorisé à ajouter une valeur et une étiquette et l'utilisateur peut taper ce qu'ils veulent.
J'ai essayé une ListBox, mais qui ne me permet pas de valeur d'usage et de label.
- Votre titre et la description sont source de confusion. Cela n'a rien à voir avec les menus.
- Votre meilleur pari est de remplir les éléments avec les chaînes que vous souhaitez afficher, puis dans le code, vous avez juste des conditions en fonction de ce que l'utilisateur a sélectionné.
InformationsquelleAutor Jaylen | 2014-12-31
Vous devez vous connecter pour publier un commentaire.
Si vous voulez une valeur et une légende (étiquette), créer une classe
Dans la zone de liste déroulante puis, vous définissez la
DisplayMember
propriétéText
et laValueMember
propriétéID
.La
DropDownStyle
de la zone de liste déroulante détermine son comportement.DropDownStyle.DropDown
permet à l'utilisateur de saisir du texte. AvecDropDownStyle.DropDownList
l'utilisateur ne peut sélectionner les éléments de la liste.Vous pouvez remplir le
ComboBox
comme ceci:La
DataSource
peut être n'importe quel type de énumérable.Vous pouvez récupérer l'ID sélectionnées comme ce
Notez que vous pouvez ajouter n'importe quel type d'élément de la liste déroulante. Si vous ne spécifiez pas le
DisplayMember
etValueMember
propriétés, la zone de liste déroulante utilise leToString
méthode de l'objet afin de déterminer le texte affiché et vous pouvez récupérer l'élément sélectionné (pas de valeur sélectionnée) par le biais de laSelectedItem
propriété.Si vous ajoutez des objets de ce type ...
...à la zone de liste déroulante, vous pouvez récupérer l'élément sélectionné comme ce
La zone de liste déroulante affiche les noms et prénoms des personnes.
"POS.ComboItem"
oùPOS
est l'espace de noms que je devrais voir"One", "two", "Three"
ToString
ou de définir laDisplayMember
de la propriété. J'ai écritcomboBox1.DisplayMember = "Text"; comboBox1.ValueMember = "ID";
, mais vous pouvez définir ces propriétés dans la fenêtre propriétés ainsi.var selectedVender = (ComboItem)InputVendors.SelectedValue; selectedVender.ID = i._vendorID;
mais ce n'est pas changer l'élément sélectionné dans le menu. la valeur dei._vendorID
est retourné correctement, mais il n'est pas de mise le menu déroulant correctement.comboBox1.ValueMember = "ID"
alors vous pouvez simplement écrirecomboBox1.SelectedValue = 10;
DataSource
propriété de la zone de liste déroulante, vous pouvez consulter l'index dans cette collection et écrirecomboBox1.SelectedIndex = theIndex;
.Il semble que la valeur est simplement une référence à ce que l'élément est sélectionné, correct? Ensuite, vous pouvez utiliser l'index de la zone de liste déroulante, il est beaucoup plus facile.
Vous ne savez pas si vos éléments sont connus avant la construction, si oui, puis il suffit de les ajouter dans le concepteur, les propriétés de la zone de liste déroulante. Si pas, alors vous pouvez les ajouter dynamiquement par juste faire:
Et de savoir quel élément est sélectionné:
Vous devez définir une source de données pour votre zone de liste déroulante, il est préférable si vous créez une classe et de passer d'une liste d'Objets, par exemple:
Mettre le
Init()
méthode dans votreFormName_Load(object sender, EventArgs e){}
.Zone de liste déroulante affiche le résultat est de retour de l'
ToString
appel, de sorte que vous pouvez définir une classe qui encapsule une valeur et afficher le texte et les ajouter à votre liste déroulante.Qui est:
et ajouter des articles à votre zone de liste déroulante comme suit:
Pour la création d'une liste déroulante dans le contrôleur de l'utilisation de la selectlistitem dans la méthode get.
Et même vous avez besoin de paas en méthode post trop.
En vue dont vous avez besoin pour passer dropdownlist.
`