dgv in welcher zeile sich der buton befindet

  • VB.NET

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

    dgv in welcher zeile sich der buton befindet

    hallo, ich habe eine datagridview mit vielen zeilen und in jeder zeile ist ein button. ich möchte jedem button den namen geben, in welcher zeile er sich befindet. also button.name = current.row :> wie lkann ich also ruakriegen, in welche zeile sich der button befindet, weil die button mööchte ich nacher anprechenudn die dürfen nicht den gleichen namen haben. mfg
    Hier könnte meine Signatur stehen.

    VB.NET-Quellcode

    1. Dim dg As New DataGridView
    2. Private Sub dg_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles dg.CellClick
    3. If e.ColumnIndex = 1 Then
    4. MessageBox.Show("test")
    5. End If
    6. End Sub

    dg wird rot unterstrichen(compilierfehler): Die Handles-Klausel erfordert die withevents-variable.
    hab oben bei der variable auich public withevents probiert , der fehelr ist zwar wreg und das programm lässt sich debugen aber es passiert nix wenn ich in cell1 clicke.
    Hier könnte meine Signatur stehen.
    ich erstelle den datagridview während der runtime, das ist schon wichtig.. aber ich glaub ich habe den fehler, in der datagridview existiert garkeine cells deshalb passiert auch nix. die cellen sind datatables. deshlab passiert auch nix wenn man reinclickt. ich habe ja dg.DataSource = Datatable1 genommen. wie kann ich das also anders machen?
    Hier könnte meine Signatur stehen.

    VB.NET-Quellcode

    1. Public WithEvents dg As New DataGridView
    2. Private Sub btn_hinzuf_Click(sender As Object, e As EventArgs) Handles btn_hinzuf.Click
    3. Dim dt As New DataTable("dt_")
    4. dt.Columns.Add("Nummer")
    5. dt.Columns.Add("Bezeichnung")
    6. dt.Columns.Add("Preis 1")
    7. dt.Columns.Add("Preis 2")
    8. dt.Columns.Add("Preis 3")
    9. Form1.ds1.Tables.Add(dt)
    10. dg.Name = ("dg_")
    11. dg.Width = 700
    12. dg.DataSource = dt
    13. optionstab.SelectedTab.Controls.Add(dg)
    14. End If
    15. End Sub
    16. Private Sub dg_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles dg.CellClick
    17. If e.ColumnIndex = 1 Then
    18. MessageBox.Show("test")
    19. End If
    20. End Sub
    Hier könnte meine Signatur stehen.
    dein Code kompiliert nicht.

    meiner aber:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public WithEvents dg As New DataGridView
    3. Private Sub btn_hinzuf_Click(sender As Object, e As EventArgs) Handles btn_hinzuf.Click
    4. Dim dt As New DataTable("dt_")
    5. dt.Columns.Add("Nummer")
    6. dt.Columns.Add("Bezeichnung")
    7. dt.Columns.Add("Preis 1")
    8. dt.Columns.Add("Preis 2")
    9. dt.Columns.Add("Preis 3")
    10. ds1.Tables.Add(dt)
    11. dg.Name = ("dg_")
    12. dg.Width = 700
    13. dg.DataSource = dt
    14. Controls.Add(dg)
    15. End Sub
    16. Private Sub dg_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles dg.CellClick
    17. If e.ColumnIndex = 1 Then
    18. MessageBox.Show("test")
    19. End If
    20. End Sub
    21. End Class
    und kein Problem
    klappt aber, ein problem ist da. beim 1. mal kalppt es aber wenn ich noch mal auf den button drücke also eine neue datagridview erstellt wird, verschwindet die alte. die dgv werden in tabs erstellt. also wie gesgat bei der 1. tab funktioniert es aber sobald ich erneut auf den button drücke un eine neue dgv erstellt wird verschwindet die alte.

    VB.NET-Quellcode

    1. Public WithEvents dg As New DataGridView
    2. Public Sub btn_hinzuf_Click(sender As Object, e As EventArgs) Handles btn_hinzuf.Click
    3. Dim dt As New DataTable("dt_" + TextBox1.Text)
    4. dt.Columns.Add("Nummer")
    5. dt.Columns.Add("Bezeichnung")
    6. dt.Columns.Add("Preis 1")
    7. dt.Columns.Add("Preis 2")
    8. dt.Columns.Add("Preis 3")
    9. dt.Columns.Add("Preis 4")
    10. Form1.ds1.Tables.Add(dt)
    11. dg.DataSource = dt
    12. dg.Name = ("dg_" + TextBox1.Text)
    13. dg.Width = 700
    14. optionstab.TabPages.Add(TextBox1.Text)
    15. optionstab.SelectTab(optionstab.TabCount - 1)
    16. optionstab.SelectedTab.Controls.Add(dg)
    17. TextBox1.Text = ""
    18. End If
    19. End Sub
    20. Private Sub Cellclick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles dg.CellClick
    21. If e.ColumnIndex = 1 Then
    22. MessageBox.Show("test")
    23. End If
    24. End Sub
    Hier könnte meine Signatur stehen.

    VB.NET-Quellcode

    1. Form1.ds1.Tables.Add(dt)


    Das ist falsch und solltest Du unbedingt richtig machen.

    vb-paradise.de/allgemeines/tip…-und-aufruf-von-dialogen/
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o