9
votes

Comment définir l'élément sélectionné de Combobox dans C # Formulaires Windows?

J'essaie de définir l'élément sélectionné de comboBox code> en cas d'événement de DataGrid, mais je ne pouvais pas. J'ai googlé et essayé de différentes manières mais sans succès.

pour moi sélectionnée code> fonctionne, mais je n'ai pas pu trouver l'index des éléments de Combobox, donc je ne pouvais donc pas sélectionner l'élément. P >

NON Code de travail: P>

for (int i = 0; i < cmbVendor.Items.Count; i++)

    if (cmbVendor.Items[i].ToString() == Convert.ToString(gridView1.GetFocusedRowCellValue("vVendor")))
    {
        cmbVendor.SelectedIndex = i;
        break;
    }


4 commentaires

Avez-vous essayé de définir le fichier .text / .value (impossible de ne pas vous souvenir de laquelle une combinaison de ComboBox) à l'élément que vous souhaitez sélectionner?


Utilisez une liste de classe contenant une carte d'identité, une valeur principale (n'importe quelle touche primaire), pour remplir Combo DataSource, puis utiliser la propriété sélectionnéeValue: cmbvendor.selectedValue


Est-ce que le Si vous obtenez la valeur true et probleme dans la sélection signée ou le si toujours faux?


GetFocususedowcellValue () n'est pas une méthode de DataGrid. Si vous utilisez un contrôle de la grille à partir d'un autre fournisseur ou utilisez des méthodes d'extension, vous devez le documenter dans votre question.


9 Réponses :


5
votes

Vous l'avez dans votre si:

cmbVendor.SelectedItem = cmbVendor.Items[i];


2 commentaires

Plus besoin de la boucle, définissez directement le .SelectedItem à 'Convert.Tostring (GridView1.getfocususedowcellvalue ("VVendor"))' Je suppose.


Désolé de ne pas travailler ... en réalité, il ne vaut pas la déclaration si



15
votes

Vous pouvez obtenir votre index de votre article par le .items.indexof () code> méthode. Essayez ceci:

comboBox1.SelectedIndex = comboBox1.Items.IndexOf(gridView1.GetFocusedRowCellValue("vVendor"));


2 commentaires

Désolé de ne pas travailler ... Indexof retour -1 Même la grilleView fournit la chaîne actuelle


Donc, quelque chose ne va pas avec ceci: gridview1.getfocususedrowcellvalue ("VVendor").



1
votes

en supposant gridview1.getfocususedowcellvalue ("VVendor") code> fonctionne vraiment comme prévu, le code suivant doit résoudre le problème.

string selected = Convert.ToString(gridView1.GetFocusedRowCellValue("vVendor"));
foreach ( var item in cmbVendor.Items )
{
    if (string.Compare(item.ToString(), selected, StringComparison.OrdinalIgnoreCase) == 0)
    {
        cmbVendor.SelectedItem = item;
        break;
    }
}


0 commentaires

2
votes

enfin je l'ai trouvé. C'est: xxx

La propriété sélectionnéeText est pour la partie sélectionnée du texte modifiable dans la partie de zone de texte de la liste déroulante.


0 commentaires

13
votes

Ce qui suit fonctionne parfaitement pour moi. Passez n'importe quelle valeur ou texte disponible dans le ComboBox.

comboBox1.SelectedIndex = comboBox1.FindString(<combobox value OR Text in string formate>);


0 commentaires

0
votes

J'ai eu un problème similaire et j'ai travaillé partiellement avec l'aide des autres réponses ici. Tout d'abord, mon problème particulier était que

    private int get_combobox_index(ItemClass myItem)
    {
        int i = 0;
        var lst = combobox1.Items.Cast<ItemClass >();
        foreach (var s in lst)
        {
            if (s.Id == myItem.Id)
                return i;

            i++;
        }
        return 0;
    }


0 commentaires

-1
votes

Cela fonctionne pour moi .....

string displayMember = ComboBox.DataSource.To<DataTable>().Select("valueMemberColumn = '" + value + "'")[0]["displayMember"].ToString();
ComboBox.FindItemExact(displayMember, true).Selected = true;


0 commentaires

2
votes

Si vous avez défini la propriété ValueMember pour le contrôle ComboBox, vous pouvez simplement assigner la valeur de la propriété Selectevalue de ComboBox Control. Vous n'avez pas besoin de trouver l'indice explicitement. Voici un exemple: xxx


1 commentaires

La sélection de l'élément fonctionne bien avec cette méthode. Cependant, aucune des réponses ne met en évidence l'élément sélectionné lorsque la liste est affichée en exécutant cmb.droppeddown = true;



0
votes
ComboBox1.SelectedIndex= ComboBox1.FindString("Matching String From DataGrid Cell value")
Try this this will work fine in C# Windows application

0 commentaires