DataGridView wenn zeile makiert wert auslesen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Chris213.

    DataGridView wenn zeile makiert wert auslesen

    Also ich habe folgendes Problem:
    Wenn ich einer DGV(DataGridView1) eine Zeile Markieren will, soll das Programm mir einen Wert in eine Textbox machen. Dieser wer ist in der DGV vorhanden. Dies habe ich mit einer ListBox hin bekommen, bekomme es aber nicht mit der DGV hin weil ich 1. nicht das richtige Event finde und 2. ich bin mir nicht sicher wie ich den Index einer Zeile auslese. Ich habe es bisher mit DGV.SelectetRows.Count gemacht.

    Hier mal der code
    Spoiler anzeigen

    VB.NET-Quellcode

    1. txt_verlängern.Text = ""
    2. Dim x As String
    3. Try
    4. con.Open()
    5. cmd.CommandText = "select * from buecherliste where ID = " & ID(KryptonDataGridView1.SelectedRows.Count)
    6. reader = cmd.ExecuteReader()
    7. reader.Read()
    8. x = reader("Ausgeliehen")
    9. If x = "False" Then
    10. Else
    11. txt_verlängern.Text = CType(reader("Bis"), DateTime).AddDays(nud_zeit.Value)
    12. End If
    13. reader.Close()
    14. Catch ex As Exception
    15. MsgBox(ex.Message)
    16. End Try
    17. con.Close()

    VB.NET-Quellcode

    1. Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    2. TextBox1.Text = DataGridView1.CurrentCell.Value
    3. End Sub


    Wenn ich dich richtig verstanden habe..
    So überträgst du den Wert der Zelle in die TxtBox1 wenn du auf die Zelle klickst.


    gruss mono
    Das ist meine Signatur und sie wird wunderbar sein!
    Es gitb 2 "übliche" Möglichkeiten die Zeile zu markieren:
    (möglicherweise mehr, doch die betrachte ich nun nicht)
    1. Im ZeilenHeader(falls visible):

    Dann ginge es:

    VB.NET-Quellcode

    1. Private Sub DataGridView1_RowHeaderMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.RowHeaderMouseClick
    2. TextBox1.Text = DataGridView1.CurrentRow.Cells("Column1").Value 'Cells(index Von Column oder Name von Column) (Column=Spalte)
    3. End Sub


    2. Möglichkeit:

    Die Eigenschaft der DGV Selectionmode ist auf FullrowSelect eingestellt.

    Dann ginge es so wie von mir bereits beschrieben.
    Zu beachten ist nur:

    CurrentCell -> Die momentan "aktive" Zelle gibt die Zelle auf die geklickt wurde zurück,
    CurrentRow -> Die Zeile in der die "angeklickte" Zelle liegt, willst du in der textbox den wert auf den geklickt wird, dann wie vorher beschrieben.
    Willst du egal auf welchen Wert geklickt wird immer einen speziellen Wert einer bestimmten Spalte dieser Zeile in die Textbox einfügen, dann so wie bei 1. nur nicht ins RowheaderMouseclick event sondern ins CellClick event

    gruss mono
    Das ist meine Signatur und sie wird wunderbar sein!