Laden...

Hyperlink aus DataGridView heraus im Browser öffnen?

Erstellt von Elophant vor 18 Jahren Letzter Beitrag vor 3 Jahren 3.006 Views
E
Elophant Themenstarter:in
6 Beiträge seit 2006
vor 18 Jahren
Hyperlink aus DataGridView heraus im Browser öffnen?

Hallo zusammen,

ich bin mir nicht ganz sicher, wie ich aus einer DataGridView einen Hyperlink öffnen soll.

Entsprechend der MSDN-Hilfe sieht mein Lösungsansatz vor, die Zelle bzw. die Spalte in der der Hyperlink (die Hyperlinks) stehen, als DataGridViewLinkCell bzw. DataGridViewLinkColumn zu formatieren.

Weiterhin sagt die MSDN-Hilfe, man soll dann das CellContentClick-Event handlen, um den Hyperlink im Browser zu öffnen.

Den Browser kann man anscheinend mit

System.Diagnostics.Process.Start(URL);

öffnen, wobei URL ein String der Form "http://..." bzw. "www...." ist.

Ist der Ansatz richtig, in dem Event-Handler für das CellContentClick-Event einfach den Inhalt der Zelle als String auszulesen und als Parameter in obiger Anweisung zu übergeben?

Habe das noch nicht ausprobiert, wollte erstmal fragen... nicht dass ich in eine falsche Richtung denke.

Lieben Gruß
Philipp

6.862 Beiträge seit 2003
vor 18 Jahren

Wenn die MSDN dir das so sagt würde ich erstmal davon ausgehen dass es richtig ist 🙂 Das sollte immer die erste Anlaufstelle sein bei Problemen und dein geschildertes Vorhaben scheint schon sinnig zu sein. Versuch es einfach, mehr als schiefgehen kannst doch nicht 😁

Baka wa shinanakya naoranai.

Mein XING Profil.

174 Beiträge seit 2009
vor 3 Jahren

Auch wenn das schon recht lange her ist, aber mein Problem hat damit zu tun:

Die vorgestellte Methode hat leider den Nachteil, das sie auch auf das Drücken der Leertaste reagiert 🤔 (mir fehlt das Verständnis für den Sinn dahinter gänzlich ...)

Wie kann ich verhindern, das auf die Leertaste reagiert wird ?

private void DGV_KeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.Space) { e.Handled = true;  }
}

Hilft leider auch nicht ...

MfG ChrisProg

T
2.226 Beiträge seit 2008
vor 3 Jahren

@ChrisProg
Mal davon abgesehen, dass du auch einen eigenen Thread auf machen solltest, hast du auch ein eigenes KeyDown Event angelegt.
Das hat nichts mit dem CellContentClick Event zu tun, was der TE damals verwendet hat.

Du solltest dir ggf. mal die Doku dazu durchlesen, vielleicht hilft dir das mehr weiter als über ein KeyDown Event das eigentliche Event abzufangen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

174 Beiträge seit 2009
vor 3 Jahren

@T-Virus:

ich habe die Doku zum CellContentClick gelesen, dort steht:

Dieses Ereignis tritt auf, wenn auf den Zellen Inhalt geklickt wird. Sie tritt auch auf, wenn der Benutzer die LEERTASTE drückt und freigibt, während eine Schaltflächen Zelle oder eine Kontrollkästchen Zelle den Fokus besitzt, und für diese Zelltypen zweimal auftritt, wenn auf den Zellen Inhalt beim Drücken der Leertaste geklickt wird.

Wie gesagt, der Sinn erschließt sich mir nicht ...

das KeyDown, war mein Versuch die Leertaste vorher abzufangen - hat aber leider nicht funktioniert ...

MfG ChrisProg

4.962 Beiträge seit 2008
vor 3 Jahren

Wie soll der Anwender sonst per reiner Tastatursteuerung navigieren (bei einem Button ist ja auch die Leertaste zum Auslösen des Click-Ereignisses da)?

174 Beiträge seit 2009
vor 3 Jahren

ist ein Argument ...

also muß ich wohl damit leben ... 🙁

MfG ChrisProg

4.962 Beiträge seit 2008
vor 3 Jahren

In Default keyboard and mouse handling in the Windows Forms DataGridView control stehen noch generelle Infos dazu.

Evtl. teste mal die PreviewKeyDown-Events (evtl. auch Form.KeyPreview = true vorher setzen), wenn du es doch unterdrücken möchtest bzw. einer anderen Taste zuordnen willst.