Datagridview Zeilen bearbeiten

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datagridview Zeilen bearbeiten

    Hey, ich habe eine Datagridview in meinem Programm.
    Nun möchte ich, dass man den Text in einer TextBox Bearbeiten kann, nur leider bekomme ich es nicht hin ....

    Wie man ihn abrufen kann weiß ich :

    VB.NET-Quellcode

    1. TextBox1.Text = Haupt.dgvhaupt.CurrentRow.Cells(0).Value.ToString


    Aber ich bekomme es einfach nicht auf die Reihe, dass man es bearbeiten kann.

    Kann mir da jmd auf die Sprünge helfen ?


    EDIT : Also z.B.

    VB.NET-Quellcode

    1. Haupt.dgvhaupt.CurrentRow.Cells(0).Value.ToString = TextBox1.Text


    Geht nicht o:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fritz94“ ()

    hier was zum Lesen, vielleicht hilft es direkt oder zumindest bei der Ideenfindung

    edit:
    zu Deinem edit hier meins
    Wie in dem Link schon geschrieben wird ändert man die Daten nicht im DGV - heißt ja nicht umsonst ...View. Also schau, ob Du nicht vorher schon was besser machen kannst.
    Gruß & ...
    Lächle heut, morgen wird's schlimmer !!!

    Buch lesen | Bitte VB Tags benutzen - was ist damit gemeint? |
    Wow da blick ich garnicht durch ._.

    Ich brauche nur, dass der Textbox Text nach einem Button klick die gewählte Spalte bearbeitet ...

    z.B.

    Du wählst Row 1 Cell 2 aus, nun erscheint eine TextBox, mit dem Text aus der Cell.
    Ich gebe jetzt einen neuen Text ein und bestätige es mit eieem Button Klick.


    Nur das, mehr möchte ich nicht D:
    Bei mir gibts einen Button. Wenn man diesen drückt erscheinen 3 Textboxen, welche leer sind.
    Nun kann man anch belieben Text eingeben und dann auf OK drücken ->

    VB.NET-Quellcode

    1. Haupt.dgvhaupt.Rows.Add(Kategorie.Text, Name.Text, Anzahl.Text)



    Wenn man jetzt auf den Button Bearbeiten drückt, erscheinen wieder 3 Textboxen, diese sind aber nicht leer, dort stehen die texte aus den Zeilen!

    VB.NET-Quellcode

    1. TextBox1.Text = dgvhaupt.CurrentRow.Cells(0).Value.ToString
    2. TextBox2.Text = dgvhaupt.CurrentRow.Cells(1).Value.ToString
    3. NumericUpDown1.Text = dgvhaupt.CurrentRow.Cells(2).Value.ToString



    So nun verändert man den Text und drückt auf ok. Der Text in den Textboxen soll jetzt in der Tabelle gespeichert werden bzw den alten Text ersetzen.
    Nur das bekomme ich einfach nicht hin ...
    EDIT : Ich vollpfosten .. gaaanz ehrlich XD

    Aber ich danke dir nochmal ...

    VB.NET-Quellcode

    1. dgvhaupt.CurrentRow.Cells(0).Value = TextBox1.Text




    EDIT : Eine Frage habe ich noch :

    Wie kann ich den DGV Inhalt speichern ?
    Geht das noch mit MySettings, oder wäre das schon zu groß ?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fritz94“ ()

    EDIT : Also ich habe jetzt alles eingefügt wie es bei dir im Sample ist, ich bekomme auch keine Fehlermeldung!
    Jedoch passiert nichts wenn ich auf Save oder Reload drücke, woran kanns liegen ?


    Der Code, falls er nötig ist :
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports FlyffÜbersicht.DataSet1
    3. Public Class Haupt
    4. Private _Datafile As New FileInfo("Dataset1.xml")
    5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    6. Save()
    7. End Sub
    8. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    9. Reload()
    10. End Sub
    11. Private Sub Reload()
    12. DataSet1.Clear()
    13. If _Datafile.Exists Then
    14. DataSet1.ReadXml(_Datafile.FullName)
    15. Else
    16. MsgBox(String.Join(Environment.NewLine, {"kein Datafile gefunden:", _
    17. _Datafile.FullName, "", "Sie fahren mit leerem Dataset fort"}))
    18. End If
    19. End Sub
    20. Private Sub Save()
    21. Me.Validate()
    22. DataSet1.WriteXml(_Datafile.FullName)
    23. End Sub
    24. Private Sub Haupt_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
    25. Me.Validate() 'nochn Bug: DGV kriegt beim Disposen einen ZeilenIndex-Fehler, wenns sich die ZufügeZeile im Edit-Modus befindet
    26. Me.SuspendLayout()
    27. With Me.Controls
    28. 'Controls könnten sich theor. auch gegenseitig disposen, über Events. dieses hier disposed ganz sicher immer das letzte Element was noch da ist
    29. While .Count > 0 : .Item(.Count - 1).Dispose() : End While
    30. End With
    31. End Sub
    32. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    33. DataGridView1.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.text)
    34. End Sub
    35. End Class


    Und so sieht die Leiste mit den Dateien aus, ihr wisst bestimmt was ich meine xD



    Woran könnte es liegen ?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fritz94“ ()

    Okey, hat wirklich gefehlt, ich dödel xD

    Aber andere Frage, wieso kann ich diesen Befehl nichtmehr nutzen ?

    VB.NET-Quellcode

    1. DataGridView1.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.text)


    bzw Welchen Ersatzt gibtsn ?


    EDIT : Dieser Error kommt
    Zeilen können nicht automatisch zur Zeilenauflistung der DataGridView hinzugefügt werden, wenn das Steuerelement datengebunden ist.
    Ich habe mir alle Links angeschaut und die Samples angeguckt.


    Also :

    Ich habe 3 TextBoxen.
    Tb1 : Kategrie
    Tb2 : Name
    Tb3 : Anzahl

    So wenn man jetzt auf den Button Add drückt, sollen die Texte aus den Boxen in die Tabelle eingetragen werden.
    Jedoch geht das nicht mehr mit :

    VB.NET-Quellcode

    1. dgvHaupt.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.Text)


    Bis dahin müsste nun alles verständlich sein!

    Könntest du mir jetzt einen Ansatz geben, mit dem ich das machen könnte ?
    Den wie gesagt die Links sind etwas komisch ... ich verstehe sie zumindest nicht ganz.

    Also einen etwas leichteren Ansatz als auf den Links :D
    Dann sollte die DataTable und das DGV 3 String-Spalten haben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ja, und dann hat deine DataTable eine geeignete Add-Funktion

    VB.NET-Quellcode

    1. me.Dataset1.DataTable1.AddDataTable1Row(Textbox1.Text, Textbox2.Text, Integer.Parse(Textbox3.Text))
    Sieht bescheuert aus und ist es auch, aber wer seine Code-Elemente so benamt, hat nichts besseres verdient.

    Wie kommst du mit dem ObjectBrowser voran?