J'ai un datagridview avec le contenu d'une table. Dans ce que j'ai une colonne pour les remarques qui seront 1-2 lignes. Lorsque je clique sur la colonne remarques, je veux ouvrir un autre formulaire qui contient la zone de texte. J'ai lié la zone de texte avec la table en utilisant l'adaptateur de table. Maintenant, lorsque je ferme le formulaire avec la zone de texte, je veux l'afficher dans la colonne datagridview. S'il vous plaît aidez-moiComment mettre à jour la colonne de datagridview à partir du contenu du texte de la zone de texte dans C# formulaire Windows
Répondre
Si votre DataGridView est attaché à une table avec un TableAdapter vous devez mettre à jour la cellule vous-même, puis appelez update pour repasser les données dans la table ou vous pouvez mettre à jour la table depuis la boîte de dialogue le DataGridView.
La façon dont j'ai fait cela dans le passé est de passer un délégué d'action au second formulaire qui fait référence à une méthode du premier formulaire.
La méthode que vous transmettez contient la logique qui met à jour votre DataGridView.
Ensuite, dans votre deuxième événement de fermeture de formulaire, vous appelez ce délégué (après avoir vérifié qu'il n'est pas NULL) en transmettant la valeur de votre zone de texte. Ci-dessous, un code de prototype rapide pour montrer comment faire ceci. Ma méthode de Form1 affiche simplement une boîte de message, mais vous pouvez facilement modifier cela pour mettre à jour votre source de données DataGridView.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
Action<string> showMessage = ShowMessage;
form.ClosingMethod(showMessage);
form.Show();
}
private void ShowMessage(string message)
{
MessageBox.Show(message);
}
}
public partial class Form2 : Form
{
private Action<string> _showMessage;
public Form2()
{
InitializeComponent();
}
public void ClosingMethod(Action<string> showMessage)
{
_showMessage = showMessage;
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (_showMessage != null)
{
_showMessage("hippo");
}
}
}
Modifier
Juste me est apparu que l'appel au délégué _showMessage("hippo");
bloque.
Votre formulaire ne sera pas fermé tant que le participant n'aura pas terminé son travail - potentiellement longtemps. Dans mon exemple de boîte de message, le formulaire ne se ferme pas tant que le bouton OK n'est pas cliqué.
Pour contourner ce problème, vous pouvez appeler votre délégué de façon asynchrone comme indiqué ci-dessous:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (_showMessage != null)
{
_showMessage.BeginInvoke("hippo", null, null);
}
}
Merci pour votre réponse – user286546
- 1. Contrôle de zone de texte dans DataGridView
- 2. formulaire de validation du message dans la zone de texte
- 3. Contient de la zone de texte à la matrice - C#
- 4. Comment imprimer une valeur dans la zone de texte à partir du fichier texte?
- 5. Colonne de zone de texte multiligne dans DataGridView
- 6. Mise à jour du datatable derrière une zone de texte?
- 7. Insérer du texte dans la zone de texte WPF à la position du curseur
- 8. Définition de SqlDataSource SelectParameters à partir de la zone de texte du formulaire
- 9. TELERIK/ASP.NET - Impossible d'extraire le texte de la zone de texte, à partir du code
- 10. C# & WPF: Comment mettre à jour une hauteur de zone de texte déclarée dans le code sur le changement de contenu de la zone de texte?
- 11. Jquery + Mettre à jour une zone de texte d'une autre zone de texte dans une grille
- 12. Mise à jour de l'accès db à partir de la valeur de la zone de texte
- 13. Insérer l'URL du lien et le texte du titre dans la zone de texte à l'emplacement du curseur à partir des champs de saisie du formulaire utilisant JavaScript
- 14. Mettre à jour la zone de texte de la classe dans un fil différent
- 15. En C#, comment changer la couleur du texte nouvellement ajouté dans la zone de texte
- 16. C# - Mettre à jour la zone de texte sur les formulaires créés dans le code
- 17. Comment insérer du texte à la position de curseur actuelle dans une zone de texte
- 18. Limite de la zone de texte du formulaire Google Chrome
- 19. Définir le focus à la fin du texte dans la zone de texte après la publication?
- 20. Comment mettre à jour la valeur de la zone de texte
- 21. Comment mettre à jour du texte dans CDATA
- 22. jQuery: Insérer du texte dans la zone de texte
- 23. Comment mettre à jour le span lorsque le texte est entré dans le champ de texte du formulaire avec jquery
- 24. Bande "http: //" du texte collé dans la zone de texte
- 25. Suppression du texte par défaut de la zone de texte
- 26. Comment autoriser uniquement du texte dans la zone de texte à l'aide de jquery.validate?
- 27. Filtrer l'entrée du clavier dans la zone de texte, C#
- 28. Récupération du texte sélectionné à partir de la zone de texte lorsque vous cliquez sur la plage dans IE
- 29. WinForms DataGridView - Affichage du texte intégral et mise à jour de la source de données
- 30. Comment coller du texte enrichi dans une zone de texte?
Je devine que c'est la seconde moitié du casse-tête pour une question que vous avez posée plus tôt? http://stackoverflow.com/questions/2459465/ –
En regardant votre question une deuxième fois - persistez-vous vos données à la base de données à partir du deuxième formulaire et souhaitez actualiser votre DataGridView une fois ce formulaire est fermé? Si tel est le cas, vous pouvez faire quelque chose de similaire à ma réponse, mais dans la méthode que vous passez en tant que délégué, vous pouvez simplement actualiser votre source de données DataGridView pour qu'elle retourne dans la base de données. –