DataGridViewLinkColumn Link wurd durch Text ersetzt

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von jnpanzer.

    DataGridViewLinkColumn Link wurd durch Text ersetzt

    Hallo,

    ich verzweifle gerade wegen einer Kleinigkeit.

    Mein DGV enthält eine Spalte mit sehr langen URL Links.
    Ich möchte diese mit einen Text ersetzen und wenn man auf den Link klickt, soll die URL aufrufen.
    Eigentlich ein klassischer Hyperlink.

    Ich habe das Problem das, wenn ich mit

    C#-Quellcode

    1. UseColumnTextForLinkValue
    das einschalte und den Text ersetzte das auch die URL mit diesen Text ersetzt wird.
    Kann mir jemand einen Tipp geben, was ich verkehrt mache? Wäre für jede Hilfe dankbar.


    C#-Quellcode

    1. var select = "select id as Id, beschreibung as Beschreibung, link as Link, benutzer as Benutzer, password as Passwort, info as Info from dbo.tabemail ORDER by id ASC";
    2. var c = new SqlConnection("Data Source = SQL2; Initial Catalog = admintool; User ID = sa; Password = secret");
    3. var dataAdapter = new SqlDataAdapter(select, c);
    4. var commandBuilder = new SqlCommandBuilder(dataAdapter);
    5. var ds = new DataSet();
    6. dataAdapter.Fill(ds);
    7. DGV.ReadOnly = true;
    8. ds.AcceptChanges();
    9. DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
    10. DGV.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
    11. DGV.AutoResizeColumns();
    12. DGV.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
    13. DGV.DataSource = ds.DefaultViewManager;
    14. DGV.RowsDefaultCellStyle.BackColor = Color.White;
    15. DGV.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray;
    16. DGV.DataSource = ds.Tables[0];
    17. // DGV Link Zelle
    18. DataGridViewLinkColumn dgvlc = new DataGridViewLinkColumn();
    19. dgvlc.DataPropertyName = "link";//bind to the correct data column
    20. dgvlc.HeaderText = "Weblink";
    21. dgvlc.Name = "NAME";
    22. dgvlc.Text = "TEXT";
    23. dgvlc.Tag = "TAG";
    24. dgvlc.UseColumnTextForLinkValue = true;
    25. dgvlc.VisitedLinkColor = Color.Black;
    26. dgvlc.ToolTipText = "Hallo Tool Text";
    27. dgvlc.LinkColor = Color.Black;
    28. dgvlc.ActiveLinkColor = Color.Black;
    29. dgvlc.LinkBehavior = LinkBehavior.SystemDefault;
    30. dgvlc.TrackVisitedState = false;
    31. dgvlc.VisitedLinkColor = Color.Black;
    32. dgvlc.Width = 260;
    33. // Spalte löschen und einfügen
    34. DGV.Columns.RemoveAt(2); // Spalte alt löschen
    35. DGV.Columns.Insert(2,dgvlc); // Spalte einfügen

    Da der eigentliche Link bei dieser "Umwandlung" verloren zu gehen scheint*, musst Du den Ursprungslink aus dem BindingSource-Current rausholen und damit weiterarbeiten.

    *habe beim Anklicken mal die Zelle in eine LinkZelle umgewandelt, aber da findet der Debugger auch nix mehr vom Ursprungslink.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.