Avatar billede flyver23 Nybegynder
06. februar 2007 - 16:00 Der er 4 kommentarer og
1 løsning

Webbrowser control skal åbne IE ved klik på links.

Hej.
Jeg har et lille program, hvor jeg har inkluderet et webbrowser control fra VS2005 C#. I den control viser jeg et udsnit af en hjemmeside hvor der er nogle links, som brugere kan følge. Jeg har ikke selv lavet linkene, så nogle af dem åbner ikke i et nyt vindue. Kan jeg tvinge webbrowser controllen til at gøre dette? Det virker hvis jeg holder shift nede og klikke på linket, men det skulle gerne ske af sig selv når der klikkes.

Vh flyver23
Avatar billede kalp Novice
06. februar 2007 - 18:31 #1
string link = "";
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.UseShellExecute = true;
process.StartInfo.FileName = link;
process.Start();


det her virker, men men men.. kræver at du kan hive fat i linket, men tænkte at det sikkert er muligt via. webbrowser control..
Avatar billede blinklys79 Nybegynder
06. februar 2007 - 23:12 #2
Du skal bruge eventet "Navigating", som kaldes før der bliver navigeret til en side for at omdirigere linket til at åbnes hvor du nu ønsker.

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            e.Cancel = true;
            string link = e.Url;
            System.Diagnostics.Process process = new System.Diagnostics.Process();
            process.StartInfo.UseShellExecute = true;
            process.StartInfo.FileName = link;
            process.Start();
        }

(Med kraftig indspiration fra kalp :-))
Avatar billede blinklys79 Nybegynder
06. februar 2007 - 23:17 #3
Lige en forglemmelse...

string link = e.Url.AbsoluteUri;
Avatar billede flyver23 Nybegynder
07. februar 2007 - 09:00 #4
Mange tak for hjælpen. Der var lige lidt yderligere tilpasning for at linket ikke skulle åbne når siden navigerer første gang, og lidt probs hvis der ikke er forbindelse til internettet.

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
          Klar = true;
        }
        private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            try
            {
                if (Klar)
                {
                    e.Cancel = true;
                    string link = e.Url.AbsoluteUri;
                    if (!link.Contains("http://www.minstartside.aspx"))
                    {
                        System.Diagnostics.Process process = new System.Diagnostics.Process();
                        process.StartInfo.UseShellExecute = true;
                        process.StartInfo.FileName = link;
                        process.Start();
                    }
                    else
                    {
                        webBrowser1.Dispose();
                        webBrowser1.Visible = false;
                        this.label1.Visible = false;
                    }
                }
            }
            catch { }
        }
Det er løst nu, og hjælpen fra blinklys79 var nøglen. Mange tak for det.
Smid et svar.
Avatar billede blinklys79 Nybegynder
07. februar 2007 - 16:35 #5
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester