Ich habe mehrere Benutzersteuerelemente in meinem C# Windows-Formular-Projekt. Jetzt habe ich nur ein Formular, das mehrere Tasten hat, jede Taste hat entsprechende Benutzerkontrolle. Jetzt ist das Problem, wenn ich eine Daten in die Datenbank von usercontrol1 eingefügt habe, muss ich diese eingefügten Daten in der datagridview von usercontrol2 anzeigen.C# refresh datagridview eines anderen Benutzersteuerelements nach dem Einfügen von Daten in ein anderes Benutzersteuerelement
Antwort
Ich nehme an, Sie haben einen Click-Ereignishandler für Button in UserControl1, die Sie aufrufen, um Daten in die Datenbank einzufügen.
Jetzt müssen Sie auf das UserControl2 von Ihrem Elternformular zugreifen, das DataGridView finden und eine Datenbinde erneut ausführen, um die neuen Daten zu erhalten.
Ich habe kein Visual Studio jetzt, ich habe mein Bestes versucht, um den Code hier zu formulieren.
Syntax des übergeordnete Formular Get:
Form parentForm = (this.Parent as Form);
Und dann findet die UserControl2
var uc2 = parentForm.Controls.Find("UserControl2", true);
Und dann findet das Datagridview
var dg2 = (DataGridView)parentForm.Controls.Find("datagridview1", true);
Und dann ein databind
// Fetch Data from DataBase
dg2.DataBind();
Haben Sie über Ihr Formular Zugriff auf datagridview von userControl2?
Wenn dies der Fall ist, sollten Sie DataSource aktualisieren, nachdem Sie die Zeile eingefügt haben.
Wenn UserControl1 und UserControl2 sind benutzerdefinierte Steuerelemente mit eigener Implementierung Sie Ereignis UserControl1 hinzufügen können, die gefeuert werden, wenn Daten gespeichert werden und Verfahren zu UserControl2, die Datasource
public partial class Form1:Form
{
public Form1()
{
InitializeComponent();
userControl1.DataSaved += (sender, e) => { userControl2.RefreshGrid(); }; // Attach event
}
}
class UserControl1 : UserControl
{
public event EventHandler DataSaved;
private void SaveData() // call this when user saves data
{
InsetDataToDb(); // real insert to db
var handler = DataSaved;
if (handler != null)
handler(this, EventArgs.Empty); // call event handler
}
}
class UserControl2 : UserControl
{
public void RefreshGrid()
{
// refresh data source of grid view
dataGridView.DataSource = GetDataSource();
}
}
Problem gelöst-- da ich nur eine Instanz von jedem usercontrol, rief ich die Methode, die die Datagridview gefüllt der Benutzersteuerung, die aktualisiert werden muss. Übrigens vielen Dank für Ihre Antwort –
- 1. Verschieben eines Benutzersteuerelements innerhalb eines anderen Benutzersteuerelements
- 2. Datagridview Refresh Fenster C# Desktop-Anwendung
- 3. Einfügen eines Benutzersteuerelements nach dem Klicken auf ein Element in der Kontrollkästchenliste mit Jquery
- 4. Abrufen eines Benutzersteuerelements zum Füllen seines Containers
- 5. Wie öffnet man ein weiteres Benutzersteuerelement aus der View-Model-Klasse eines Benutzersteuerelements in Silverlight?
- 6. Refresh Form1 dataGrid von einem anderen Formular C# Winform
- 7. Hinzufügen eines vorhandenen Benutzersteuerelements zum WPF-Projekt
- 8. Einfügen von Daten von Datagridview Fehler
- 9. Wie trigger ich das Klickereignis eines Benutzersteuerelements?
- 10. C# Datenquelle eines Datagridview von einer anderen Quelle
- 11. Laden von Daten in DataGridView in C#
- 12. wie Daten an Gitter in einem Benutzersteuerelement in c binden #
- 13. Fehlende Daten in Datagridview nach dem Import von Excel
- 14. Programmgesteuertes Andocken eines Benutzersteuerelements zur Laufzeit
- 15. VBA Kopieren und Einfügen von Daten aus Großschot in ein anderes Blatt je nach Datenwert
- 16. PHP-Refresh-Seite verhindern Daten einfügen
- 17. Wie verwende ich ein asp.net-Benutzersteuerelement in einem anderen Benutzersteuerelement?
- 18. Wie erhalte ich den Instanznamen eines Benutzersteuerelements?
- 19. C# Zugriff auf Datagridview-Daten nach Datagridview-Name
- 20. Text eines Steuerelements in einem anderen Benutzersteuerelement aktualisieren, wenn sich der Text eines Steuerelements in einem anderen Benutzersteuerelement ändert
- 21. bringen Daten in von i ein anderes modellieren - C# mvc
- 22. Wie Zeilen hinzufügen und Daten in Datagridview einfügen C#
- 23. Hinzufügen eines Benutzersteuerelements zu einem wpf-Fenster
- 24. Wie abonniere ich ein Ereignis eines Benutzersteuerelements
- 25. Aktualisieren DataGridView eines Formulars aus einem anderen Formular
- 26. Einfügen von Daten nach dem Erstellen eines Index für eine leere Tabelle oder Erstellen eines eindeutigen Index nach dem Einfügen von Daten in Oracle?
- 27. Überprüfen eines ASP.NET-Benutzersteuerelements von seiner übergeordneten Seite
- 28. Benutzersteuerelement von einem anderen Benutzersteuerelement in einem RadTabStrip laden
- 29. Exportieren von Datagridview nach Excel in C#
- 30. Übergeben von Formulardaten an ein anderes Formular datagridview
Problem erfrischen kann solved-- da ich nur eine Instanz von jedem usercontrol, rief ich die Methode, die die datagridview von usercontrol, die aktualisiert werden muss gefüllt .. übrigens Dank für Ihre Antwort –