Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Hyperlink aus DataGridView heraus im Browser öffnen?
Elophant
myCSharp.de - Member



Dabei seit:
Beiträge: 6

Themenstarter:

Hyperlink aus DataGridView heraus im Browser öffnen?

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 6.862
Herkunft: Esslingen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
ChrisProg
myCSharp.de - Member

Avatar #avatar-3533.jpg


Dabei seit:
Beiträge: 174
Herkunft: Cloppenburg

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ChrisProg am .
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Experte



Dabei seit:
Beiträge: 2.117
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

@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.
private Nachricht | Beiträge des Benutzers
ChrisProg
myCSharp.de - Member

Avatar #avatar-3533.jpg


Dabei seit:
Beiträge: 174
Herkunft: Cloppenburg

beantworten | zitieren | melden

@T-Virus:

ich habe die Doku zum CellContentClick gelesen, dort steht:
Zitat
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
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.643

beantworten | zitieren | melden

Wie soll der Anwender sonst per reiner Tastatursteuerung navigieren (bei einem Button ist ja auch die Leertaste zum Auslösen des Click-Ereignisses da)?
private Nachricht | Beiträge des Benutzers
ChrisProg
myCSharp.de - Member

Avatar #avatar-3533.jpg


Dabei seit:
Beiträge: 174
Herkunft: Cloppenburg

beantworten | zitieren | melden

ist ein Argument ...

also muß ich wohl damit leben ...


MfG ChrisProg
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.643

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers