J'essaie de définir l'élément sélectionné de pour moi NON Code de travail: P> 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.
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 >
for (int i = 0; i < cmbVendor.Items.Count; i++)
if (cmbVendor.Items[i].ToString() == Convert.ToString(gridView1.GetFocusedRowCellValue("vVendor")))
{
cmbVendor.SelectedIndex = i;
break;
}
9 Réponses :
Vous l'avez dans votre si:
cmbVendor.SelectedItem = cmbVendor.Items[i];
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
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"));
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").
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;
}
}
enfin je l'ai trouvé. C'est: 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. P> P>
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>);
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; }
Cela fonctionne pour moi .....
string displayMember = ComboBox.DataSource.To<DataTable>().Select("valueMemberColumn = '" + value + "'")[0]["displayMember"].ToString(); ComboBox.FindItemExact(displayMember, true).Selected = true;
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:
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; code>
ComboBox1.SelectedIndex= ComboBox1.FindString("Matching String From DataGrid Cell value") Try this this will work fine in C# Windows application
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.