La mise à jour de datagridview à partir d'un autre formulaire vb.net
J'ai un datagridview à une certaine forme. Dans ce formulaire il y a un ajout et mise à jour de bouton qui va accepter de détails et lorsque le bouton terminer est sur, je veux mettre à jour le contrôle gridview. Mais il semble que je ne peut pas accomplir ce depuis que je suis en ajoutant/détails de mise à jour à partir d'un autre formulaire.
Première Forme (Lier des données, reportez-vous à mise à jour/ajouter un bouton de formulaire):
Private Sub bindStudentsData()
Dim db As New Database()
DataGridView1.DataSource = Nothing
DataGridView1.DataSource = New BindingSource(db.getStudentList(), Nothing)
End Sub
Private Sub addBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles addBtn.Click
Dim sf As New StudentForm()
sf.Show()
End Sub
Private Sub updateBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles updateBtn.Click
Dim sid As String = DataGridView1.SelectedRows(0).Cells("studentid").Value
Dim sf As New StudentForm(sid)
sf.Show()
End Sub
*En utilisant .show() la forme précédente reste ouvert et ouvre une autre forme
Puis, après être entré dans les détails et cliquez sur terminer
Deuxième Forme:
Private Sub doneBtm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles doneBtm.Click
Dim db As New Database()
If type Is "add" Then
'go to add
MsgBox(type)
Else
'go to update
db.updateStudentDetails(sid, astudentnumberText.Text, afirstnameText.Text,
_alastnameText.Text, amiddlenameText.Text, asectionText.Text)
Me.Close()
End If
End Sub
J'ai besoin de relier le datagridview dans mon premier formulaire après avoir cliqué sur le bouton terminé sur la deuxième forme. Comment pourrais-je le faire? Des idées? Merci!
- Avez-vous vu stackoverflow.com/questions/10887948/...
Vous devez vous connecter pour publier un commentaire.
Plus simple et la meilleure méthode est d'utiliser simplement
ShowDialog()
au lieu deShow()
. Il bloque votre forme actuelle jusqu'à ce que vous fermez le nouveau formulaire. Ensuite, Appelez votrebindStudentsData()
. Plus de changementsDeuxième Méthode (que vous voulez). Complexe, mais si vous n'êtes pas prêt à utiliser ShowDialog à tout prix
Faire de votre
bindStudentsData()
public et faire forme actuelle, leOwner
de la Forme suivanteVous pouvez maintenant accéder à la première forme dans la deuxième formulaire à l'aide de
Owner
et, par conséquent, vous pouvez appeler les méthodes de la première forme ainsi. Appelez simplementbindStudentsData()
avant la fermeture de la deuxième formeLorsque vous avez fini, vous pouvez enregistrer vos données dans la db, puis de retour d'appel de la forme que vous souhaitez actualiser. Et la liaison sera actualiser avec le/mise à jour de nouvelles données...
Du commentaire de @kush, si vous souhaitez fermer la deuxième forme après le travail est terminé, vous pouvez ajouter une balise script dans la Réponse de la sorcière fermer la page.
Je sais, ça fait un moment depuis que la question a été posté, mais j'utilise une autre solution et certaines personnes peuvent trouver utile.
Dans la form1, j'ouvre mon deuxième forme :
Puis, dans la deuxième forme, lorsque j'appuie sur le bouton OK j'écris :
Enfin, dans form1, j'ajoute ces lignes sous
frm.ShowDialog()
:Avec cette méthode, vous pouvez garder votre datagridview méthodes de form1 Private.