DGV textlabel zu linklabel

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von MVN050.

    DGV textlabel zu linklabel

    moin leute
    ich habe ein problem und komme einfach nicht mehr weiter...

    ich habe nun ein dgv erstellt das aus einem image und der rest nur textlabeln besteht
    so nun will ich aber das wenn man auf ein button klickt das sich eine neue zeile erstellt und in der neuen zeile die letzte spalte ein linklabel kommt!
    hat da einer eine idee wie das geht?

    so lasse ich mir ja daten ins dgv füllen

    VB.NET-Quellcode

    1. dgv1.Rows.Add(Image.FromFile("bild1.png), "text1", "text2", "text3")

    nun will ich das sich "text3" von einem textlabel zum linklabel ändert...
    ich bekomms einfach nicht hin
    Hallo,

    so kannst du daraus eine DataGridViewLinkCell machen

    VB.NET-Quellcode

    1. DGV1.Rows.Add(Image.FromFile("C:\2.jpg"), "text1", "text2", "http://www.google.de")
    2. Dim c As New DataGridViewLinkCell
    3. c.Value = DGV1.Rows(0).Cells(3).Value
    4. DGV1.Rows(0).Cells(3) = c


    mfG

    Derfuhr
    das funktioniert sogar auf anhieb ;) danke

    jetzt will ich noch überprüfen, wenn man nun auf das dgv klinkt und auf das linklabel klickt soll sich der link öffnen
    ich denke mal ich muss zuerst überprüfen ob es ein textlabel ist oder ein linklabel richtig?
    mit valuetype bekomme is nur komisches zeug raus und kein linklabel :(
    Um einen Link(im Standart-Browser) zu öffnen muss man nicht unbedingt ein DataGridViewLinkCell nehmen, das wäre eine möglichkeit

    VB.NET-Quellcode

    1. Private Sub DGV1_CellContentDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV1.CellContentDoubleClick
    2. If e.ColumnIndex = 3 AndAlso DGV1.CurrentRow.Cells(3).Value.ToString.ToLower.StartsWith("http") Then
    3. Process.Start(DGV1.CurrentRow.Cells(3).Value.ToString)
    4. End If
    5. End Sub
    Du kannst den Zellen auch einen TAG verpassen und den vorher abfragen.

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. DGV1.Rows.Add(Image.FromFile("C:\2.jpg"), "text1", "text2", "http://www.google.de")
    3. DGV1.Rows(0).Cells(3).Tag = "HTML"
    4. End Sub
    5. Private Sub DGV1_CellContentDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV1.CellContentDoubleClick
    6. If Not DGV1.CurrentCell.Tag Is Nothing AndAlso DGV1.CurrentCell.Tag.ToString = "HTML" Then
    7. Process.Start(DGV1.CurrentRow.Cells(3).Value.ToString)
    8. End If
    9. End Sub


    Hab den Code korrigiert, musst erst prüfen ob ein Tag vorhanden.

    MVN050 schrieb:

    mit valuetype bekomme is nur komisches zeug raus

    versuch es zum testen mal so:

    VB.NET-Quellcode

    1. Private Sub DGV1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV1.CellContentClick
    2. MessageBox.Show(DGV1.CurrentCell.GetType().ToString)
    3. End Sub

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Derfuhr“ ()

    jap danke der erste ginge nicht ganz aber der jetzige geht danke
    an den "tag" hab ich garnit gedacht :rolleyes:

    gibts da jetzt vllt noch ne möglichkeit den browser zu öffnen? mit processstart öffnet er ja alles und wenn kein www davor steht öffnet er ja auch andere sachen ;( zb ne datei...