Button in DataGridView

  • VB.NET

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

    Button in DataGridView

    Hallo ich hoffe ihr könnt mir helfen, ich komme einfach nicht weiter.
    Ich habe einen Spalte mit Button in meiner DataGridView hinzugefügt, allerdings erscheint als Text des Button immer der Link oder es erscheint der richtige Name "Schliffbild", dann jedoch funktioniert der Button nicht. Mit ButtonColum.UseColumnTextForButtonValue = True bin ich nicht weiter gekommen

    Quellcode

    1. 'Button-Spalte konfigurieren
    2. ButtonColumn = New DataGridViewButtonColumn
    3. 'Daten aus DB einfügen
    4. Gridbinding.DataSource = Datatable
    5. Grid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
    6. sqlcon.Close()
    7. With ButtonColumn
    8. .HeaderText = "Schliffbild"
    9. .Name = "SchliffbildDataGridViewTextBoxColumn"
    10. .Text = "Schliffbild"
    11. End With
    12. 'Spalte einfügen > ButtonColumn
    13. DataGridView1.Columns.Insert(0, ButtonColumn)
    14. 'Link aus Spalte 6 In Spalte 0(ButtonColumn)
    15. For I As Integer = 0 To DataGridView1.Rows.Count - 1
    16. DataGridView1.Rows(I).Cells(0).Value = DataGridView1.Rows(I).Cells(6).Value
    17. Next
    18.  
    19. ButtonColumn.UseColumnTextForButtonValue = Not ButtonColum.UseColumnTextForButtonValue = True
    20. Grid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)


    Grüße Fabian

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

    Es ist mir echt unerklärlich, es kommt auch keine Fehlermeldung. Es ist als wäre kein value hinterlegt. Setzt ich auf FALSE trägt der Button den Link-Text und es läuft.
    HILFE

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

    VB.NET-Quellcode

    1. Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    2. Dim value As String
    3. If e.ColumnIndex = DataGridView1.Columns("SchliffbildDataGridViewTextBoxColumn").Index And e.RowIndex <> -1 Then
    4. value = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
    5. Try
    6. Process.Start(value)
    7. Catch ex As Exception
    8. End Try
    9. End If
    10. End Sub

    mache ich evtl. hier was falsch?
    endlich!

    Ja. Vermulich rufst du von einer ungeeigneten Spalte den Wert ab.

    Probier ma erstmal so:

    VB.NET-Quellcode

    1. Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    2. If e.ColumnIndex = DataGridView1.Columns("SchliffbildDataGridViewTextBoxColumn").Index And e.RowIndex <> -1 Then
    3. dim colIndex = 5
    4. Dim value = DataGridView1(e.RowIndex, colIndex).Value.ToString
    5. Debug.Print(value)
    6. 'Process.Start(value)
    7. End If
    8. End Sub
    Der Prozess wird erstmal noch nicht gestartet, sondern nur der Wert der 6.Spalte ins Ausgabefenster geloggt.
    Ich weiß nicht in welcher Spalte die richtigen Werte stehen, aber durch Verändern von colIndex solltest du es jetzt schnell rausfinden können.

    Wenn du damit fertig bist, und möchtest dein Programm wesentlich verbessern, und deinen ganzen Programmier-Stil, dann empfehle ich dir, die "Deppen-Einstellungen" zu korrigieren, mit denen vb.net leider ausgeliefert wird: Visual Studio - Empfohlene Einstellungen