2009-10-06 6 views
0

J'ai un datagridview avec un identifiant de ligne d'une base de données. Je veux ouvrir un formulaire de dialogue pointant vers la même ligne. Quelle est la syntaxe pour faire quelque chose commeLa manière la plus simple de synchroniser un formulaire de dialogue avec une ligne datagridview?

Detail.BindingContext = Gridform.BindingContext 

Depuis mon autre question était proche https://stackoverflow.com/questions/1527887/how-to-point-to-use-same-datasource-and-currencymanager-from-a-second-c-form

mettre à jour celui-ci: je préfère une solution avec le gestionnaire de devises.

Répondre

1

Je ne suis pas sûr de ce que vous essayez de faire. Je crois que vous voulez être en mesure de sélectionner une ligne dans un DataGridView, faire quelque chose pour ouvrir une boîte de dialogue avec un autre DGV qui a le même enregistrement et sélectionnez cet enregistrement dans la boîte de dialogue.

Si c'est ce que vous voulez faire, alors vous devez faire deux choses: obtenir l'ID d'une ligne sélectionnée dans la DGV du formulaire principal, puis sélectionner par programme une ligne dans une autre DGV. Voici comment procéder:

Étape 1. Récupérez l'identifiant de la ligne sélectionnée dans le formulaire principal.
Quelque chose à peu près comme cela devrait fonctionner:

string id = dataGridView.SelectedRows[0].Cells[colIdColumn.Index].Value.ToString(); 

où:
a. La colonne qui a l'identifiant que vous mentionnez est nommée colIdColumn
b. Le type de données de id est la chaîne

Après avoir validé l'ID, ouvrez votre boîte de dialogue et transmettez-lui l'ID. Lorsque la boîte de dialogue ouvre conitnue à l'étape 2.

Étape 2. Sélectionnez Programmatically une ligne sur un autre DataGridView
Regardez la méthode BindingSource.Find pour retourner l'indice qu'une valeur apparaît dans un BindingSource et regarder la propriété BindingSource.Position pour sélectionner un enregistrer dans un BindingSource.

Votre code pourrait ressembler à ceci:

// Get index of row with your id. 
int index = yourBindingSource.Find("YourIdProperty", "Id"); 
yourBindingSource.Position = index; 

espoir qui aide

+0

Salut, merci pour la solution, mais j'ai entendu quelque chose comme le CurrencyManager, je ne peux pas l'utiliser à la place? – programmernovice

Questions connexes