2010-07-07 3 views
3

Possible en double:
Open a URL from Windows FormsC# - Demandez à votre application de bureau ouvrir le navigateur du système dans une page Web spécifique

Bonjour!

J'ai une application de bureau C# et je veux être en mesure d'avoir un lien qui va ouvrir une nouvelle fenêtre de navigateur/onglet (sur le navigateur par défaut du système) dans une page Web spécifique. J'ai cherché cela sur le web mais je n'ai encore rien trouvé. Toute aide? merci ...

+0

Cette question ne couvre pas l'aspect lien, juste le lancement. –

+0

True. Dommage que je ne puisse pas annuler mon vote serré. Il est utile d'avoir les deux questions liées, de toute façon. – Blorgbeard

Répondre

4

Vous devez utiliser un contrôle LinkLabel et Process.Start.
Here est un exemple d'utilisation.

PS. Vous devriez vraiment commencer à accepter des réponses si vous voulez obtenir de l'aide dans le futur.

+0

oui. Je vous remercie. Je ne les ai pas encore vus. J'ai augmenté les deux et accepté votre réponse comme correcte. Encore une fois, merci à tous les deux pour vos réponses rapides. – user295744

7

Si vous démarrez.L'urgence, cela devrait faire la même chose que ShellExecute, comme vous le feriez en code natif.

Vous pouvez utiliser un LinkLabel de la boîte à outils, pour obtenir le lien sur le formulaire avec le comportement approprié. Exemple de code here.

Version simplifiée:

private void Form1_Shown (object sender, EventArgs e) 
    { 
    linkLabel1.Links.Add (0, 7, "http://bobmoore.mvps.org/"); 
    linkLabel1.LinkClicked += new LinkLabelLinkClickedEventHandler(linkLabel1_LinkClicked); 
    } 

    private void linkLabel1_LinkClicked (object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) 
    { 
    this.linkLabel1.Links[linkLabel1.Links.IndexOf (e.Link)].Visited = true; 
    string target = e.Link.LinkData as string; 

    System.Diagnostics.Process.Start (target); 
    } 
+0

En fait, ce n'est pas «alternativement». I LinkLabel n'ouvre pas automatiquement une URL dans le navigateur par défaut. Vous devez toujours utiliser Process.Start pour le faire. –

+0

Hmm, j'ai toujours supposé que c'est ce que cela ferait, mais le code MS suggère que vous devez utiliser un gestionnaire d'événements - oui, juste essayé, la chose se trouve juste là et ne fait rien . J'ai modifié en conséquence. –

+0

Il n'est pas certain qu'un lien soit associé à une URL. Vous pouvez utiliser un LinkLabel pour afficher un autre formulaire, accéder à un certain onglet ou à quelque chose d'autre qui n'a rien à voir avec les navigateurs. Vous pouvez également associer plusieurs URL au LinkLabel. Lequel devrait-il naviguer si vous cliquez sur le lien? Vous pouvez regarder le LinkLabel comme un bouton avec une propriété spéciale: Liens. –

Questions connexes