Guten Tag,
ich hoffe ihr könnt mir wie letztes mal wieder auf die Sprünge helfen:
Es geht um eine ganz einfache Kontakteverwaltung nach folgendem Schema: Es gibt eine Kontakte-Tabelle, welches die "Kern" Kontakte darstellt. Zu jedem Kontakt gibt es beliebig viele "Ansprechpartner" (sozusagen "Unter-Kontakte"). Außerdem gibt es die Tabelle Anreden in der die verschiedenen Anreden gespeichert sind (Herr / Frau / Firma / ...). Die Tabelle Anrede soll dabei für beide anderen Tabellen zur Verfügung stehen.
Im Start-Form wird ein Datagridview mit dem Inhalt der TblKontakte angezeigt. Hier soll der Nutzer nur schauen können, also Readonly. Mit Doppelklick auf eine Zeile wird ein Modales Form geöffnet, in dem dann die Kontaktdetails im Detail-View geändert werden können. Das klappt auch super.
Jetzt soll gleichzeitig in dem Form Kontaktdetails ein zusätzliches Datagridview angezeigt werden, in dem die Ansprechpartner für diesen Kontakt vermerkt sind. Diese sollen im Datagridview angezeigt und auch bearbeitet werden können.
Das klappt leider nicht und ich komme nicht dahinter was ich falsch mache.
Mein Quellcode:
Form Kontakte (Hauptform)
(Die Möglichkeiten zum Hinzufügen und löschen von Datensätzen müssen hier natürlich noch implementiert werden...)
Mein Modales Unterform:
Falls das hilft -> Ich habe die assembly mit angehangen.
Danke!
Grüße
Philipp
ich hoffe ihr könnt mir wie letztes mal wieder auf die Sprünge helfen:
Es geht um eine ganz einfache Kontakteverwaltung nach folgendem Schema: Es gibt eine Kontakte-Tabelle, welches die "Kern" Kontakte darstellt. Zu jedem Kontakt gibt es beliebig viele "Ansprechpartner" (sozusagen "Unter-Kontakte"). Außerdem gibt es die Tabelle Anreden in der die verschiedenen Anreden gespeichert sind (Herr / Frau / Firma / ...). Die Tabelle Anrede soll dabei für beide anderen Tabellen zur Verfügung stehen.
Im Start-Form wird ein Datagridview mit dem Inhalt der TblKontakte angezeigt. Hier soll der Nutzer nur schauen können, also Readonly. Mit Doppelklick auf eine Zeile wird ein Modales Form geöffnet, in dem dann die Kontaktdetails im Detail-View geändert werden können. Das klappt auch super.
Jetzt soll gleichzeitig in dem Form Kontaktdetails ein zusätzliches Datagridview angezeigt werden, in dem die Ansprechpartner für diesen Kontakt vermerkt sind. Diese sollen im Datagridview angezeigt und auch bearbeitet werden können.
Das klappt leider nicht und ich komme nicht dahinter was ich falsch mache.
Mein Quellcode:
Form Kontakte (Hauptform)
VB.NET-Quellcode
- Imports System.ComponentModel
- Imports System.IO
- Public Class FrmKontakte
- Dim _Datafile As New FileInfo("TdsKontakte.xml")
- Private Sub FrmKontakte_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- If _Datafile.Exists Then 'Falls das Dataset schon existiert wird es geladen
- TdsKontakte.ReadXml(_Datafile.FullName)
- Else 'Wenn es noch nicht existiert, werden die Anreden hinzugefügt
- Dim RwAnredeHerr = TdsKontakte.TblAnrede.AddTblAnredeRow("Herr")
- Dim RwAnredeFrau = TdsKontakte.TblAnrede.AddTblAnredeRow("Frau")
- TdsKontakte.TblAnrede.AddTblAnredeRow("Firma")
- 'Zu Testzwecken hier erstmal nur statische Datensätze...
- TdsKontakte.TblKontakte.AddTblKontakteRow(RwAnredeHerr, "Max", "Mustermann", "Musterstraße", "12345", "Musterstadt", "12345-2231", "Max@muster.de", "")
- TdsKontakte.TblKontakte.AddTblKontakteRow(RwAnredeFrau, "Maria", "Musterfrau", "Testweg", "54321", "Neustadt", "43321-31221", "Maria@test.de", "")
- End If
- End Sub
- Private Sub FrmKontakte_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
- TdsKontakte.WriteXml(_Datafile.FullName)
- End Sub
- Private Sub TblKontakteDataGridView_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles TblKontakteDataGridView.CellDoubleClick
- Dim dialog As New FrmKontaktdetails(DirectCast(DirectCast(TblKontakteBindingSource.Current, DataRowView).Row, TdsKontakte.TblKontakteRow))
- dialog.TdsKontakte = Me.TdsKontakte
- dialog.ShowDialog()
- End Sub
- End Class
(Die Möglichkeiten zum Hinzufügen und löschen von Datensätzen müssen hier natürlich noch implementiert werden...)
Mein Modales Unterform:
VB.NET-Quellcode
- Public Class FrmKontaktdetails
- Dim _RwKontakt As TdsKontakte.TblKontakteRow
- Public Sub New(ByRef RwKontakt As TdsKontakte.TblKontakteRow)
- ' Dieser Aufruf ist für den Designer erforderlich.
- InitializeComponent()
- ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
- TblKontakteBindingSource.DataSource = RwKontakt
- _RwKontakt = RwKontakt
- End Sub
- Private Sub FrmKontaktdetails_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- TblAnredeBindingSource.DataSource = TdsKontakte.TblAnrede
- 'Dashier ist jetzt mein letzter Verzweifelter Versuch gewesen. Hier muss dann wohl irgend etwas anderes hin:
- TblAnsprechpartnerBindingSource.DataSource = _RwKontakt.GetChildRows("FK_TblKontakte_TblAnsprechpartner")
- End Sub
- End Class
Falls das hilft -> Ich habe die assembly mit angehangen.
Danke!
Grüße
Philipp