Announcement

Collapse
No announcement yet.

Daten eines gebundenen DGV an eine andere Form übertragen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten eines gebundenen DGV an eine andere Form übertragen

    Hallo,
    kann mir jemand sagen, wie ich eine markierte Zeile in einem gebundenen Datagridview an eine andere Form und deren Textfelder übertrage?
    Wichtig, die Textfelder müssen gebunden sein d.h. die Daten in den Textboxen sollen editiert werden und dann gespeichert werden.

    Gruss
    Stefan

  • #2
    Hallo,

    diese Anforderung lässt sich ab dem .NET Framework 2.0 einfach umsetzen. Das folgende Beispiel verwendet 2 Formulare, die über die visuelle Datenbindung in Visual Studio 2005 jeweils separat konfiguriert wurden. Wenn das Detail-Formular "fertig" ist, wird dort der BindingNavigator und TableAdapter entfernt (die Abbildungen zeigen den Endzustand).

    Detail-Formular

    Code:
            public void DoEdit(BindingSource aFrmMainBindingSource, DataSet1 aFrmMainDataSet)
            {
                this.testTblBindingSource.DataSource = aFrmMainDataSet; 
                this.testTblBindingSource.Position = aFrmMainBindingSource.Position;
                if (this.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    this.testTblBindingSource.EndEdit();
                }
                else
                {
                    this.testTblBindingSource.CancelEdit();
                }
            }
    Das Haupt-Formular ruft nach der Auswahl des zu bearbeiteten Datensatzes das Detail-Formular auf, wobei der Verweis auf das eigene DataSet und die eigene BindingSource an das Detail-Formular übergeben werden:

    Code:
            private void toolStripButtonDetailForm_Click(object sender, EventArgs e)
            {
                using (FormDetail aFrm = new FormDetail())
                {
                    aFrm.DoEdit(this.testTblBindingSource, this.dataSet1);
                }
            }
    Attached Files
    Zuletzt editiert von Andreas Kosch; 06.05.2007, 09:23.

    Comment


    • #3
      Hallo Andreas,

      die Position über die Bindingsource hatte ich auch schon probiert, nur sobald das Grid sotiert wird oder ich über eine Filterleiste(alphabetisch) die Daten neu einlese, gibt mir die Bindingsource Position immer nur die Werte aus dem sichbaren Bereich des Grids zurück.
      d.h. 1 Datensatz beim einlesen der kompletten Tabelle ist der Name Meier an erster Stelle im Grid, dann filtere ich z.b. nur Namen mit "O" anzeigen und der Name Otto steht an erster Position im Grid ist die Bindingsource Position die selbe wie bei Meier. Wenn ich also die Position der Bindingsource an Form2 weitergebe habe ich immer den selben Namen der abgerufen wird.

      Comment

      Working...
      X