none
DataGridView Cell -> Legen Sie zuerst die CurrentCell-Eigenschaft fest. RRS feed

  • Frage

  • AHallo zusammen,

    ich bin etwas verwirrt. Seit ich mich mit der DateGridView beschäftige habe ich eigenlich immer den gleichen Code verwendet. Der auch in allen Projekten funktioniert.
    Nun mache ich in einem Projekt eine neue DataGridView und verwende wie immer den selben Code.
    Nur diesmla meckert er ! Ich habe dann so einiges versucht.
    Neue Grid Neuer Code.
    Alte Grid und Code kopieren.
    Namen der Grid ändern.
    Hinzufügen, bearbeiten, löschen, neuanordenen....
    ......


    Aber bei der neuen DataGridView bringt er mir immer den selben fehler.
    "Legen Sie zuerst die CurrentCell-Eigenschaft fest."

    Es kann doch nicht sein, das eine DataGridView funktioniert und eine wiederum nicht !?
    Hier mal der Code
      Private Sub DataGrid4Fuellen(ByVal Eintrag As String)
            DaTaGrid4.AllowUserToAddRows = True
            Dim RowCount As Integer = DaTaGrid4.RowCount - 1
            DaTaGrid4.Rows.Add()
            DaTaGrid4.BeginEdit(CBool(RowCount))
            DaTaGrid4.Rows(RowCount).Cells(0).Value = My.Computer.FileSystem.GetName(Eintrag)
            DaTaGrid4.Rows(RowCount).Cells(1).Value = Eintrag     ' Add Pfad und Datei Name
            DaTaGrid4.Update()
            DaTaGrid4.EndEdit()
            DaTaGrid4.AllowUserToAddRows = False
        End Sub
    Vielen lieben dank
    Bernd
     
    Mittwoch, 6. Januar 2010 16:50

Antworten

  • Hallo Bernd,

    auslesen bzw. auf Nothing prüfen:

    Debug.Print((DataGrid4.CurrentCell Is Nothing).ToString())

    Ich kann den Fehler den Du bekommst jedoch nicht ohne weiteres reproduzieren. Ich bin von einem ungebundenen Szenario ausgegangen, einfache DataGridView, zwei Spalten hinzugefügt und Dein Code. Funktioniert. Erst wenn ich CurrentCell vorher explizit auf Nothing setze, bekomme ich den von Dir beschriebenen Fehler. Der ließe sich hier aber dann immer noch umgehen, indem man auf das Aufrufen von BeginEdit und EndEdit verzichtet. Denke die Methoden sind ohnehin nur dann relevant, wenn man den Editmode für den Anwender aktivieren möchte.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Donnerstag, 7. Januar 2010 21:20
    Moderator

Alle Antworten

  • Hallo Bernd,

    welchen Wert hat die CurrentCell-Eigenschaft, wenn Du BeginEdit aufrufst? Verschwindet der Fehler, wenn Du CurrentCell explizit auf die zu bearbeitende Zelle festlegst?


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Donnerstag, 7. Januar 2010 20:47
    Moderator
  • Hallo Thorsten,

    wie kann ich denn die CurrentCell-Eigenschaft auslesen ?
    Wie lege ich das den fest ? CurrentCell explizit auf die Zeile!
    Das ist eine leere DataGridView.


    Sorry,
    nur das was ich obern gepostet habe, habe ich mir in ca. 5 Tagen zusammen gelesen. wie gesagt bei anderen Identischen DataGridViews geht es ja.


    danke
    bernd
    Donnerstag, 7. Januar 2010 20:57
  • Hallo Bernd,

    auslesen bzw. auf Nothing prüfen:

    Debug.Print((DataGrid4.CurrentCell Is Nothing).ToString())

    Ich kann den Fehler den Du bekommst jedoch nicht ohne weiteres reproduzieren. Ich bin von einem ungebundenen Szenario ausgegangen, einfache DataGridView, zwei Spalten hinzugefügt und Dein Code. Funktioniert. Erst wenn ich CurrentCell vorher explizit auf Nothing setze, bekomme ich den von Dir beschriebenen Fehler. Der ließe sich hier aber dann immer noch umgehen, indem man auf das Aufrufen von BeginEdit und EndEdit verzichtet. Denke die Methoden sind ohnehin nur dann relevant, wenn man den Editmode für den Anwender aktivieren möchte.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Donnerstag, 7. Januar 2010 21:20
    Moderator
  • OK danke Thorsten,

    schaue ich mir morgen genau an.

    vieleicht komme ich noch dahinter !

    ich sage aber noch bescheid!
    Donnerstag, 7. Januar 2010 21:29
  • Ok,

    ich habe
    DaTaGrid4.BeginEdit(CBool(RowCount))
    und
    DaTaGrid4.EndEdit()
    weg gelassen. Jetzt funktioniert es.


    danke
    Bernd
    Freitag, 8. Januar 2010 16:37