Visual basic popup in tabblad van browser

Pagina: 1
Acties:
  • 400 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik ben een beetje aan het stoeien met Visual Basic en ben een Browser aan het schrivjen.
Helaas loop ik tegen het punt aan dat, wanneer er een externe link op een website is, de standaard browser wordt geopend (dit geldt ook voor popups etc.)

Na lang nadenken en veel rondgezoek op forums, youtube, google, yahoo en msdn en niets gevonden te hebben, behalve voor zeer verouderde versies, zoals versie 6.0 :'( , dacht ik dat het handig was ervoor te zorgen dat ik de die linkjes laat openen in een tabblad. Is dit mogelijk, zo ja waar moet ik dan vooral op letten. weet iemand hier een oplossing voor, of misschien een betere oplossing wat functioneler is.

Alvast bedankt voor de hulp!

PS
ik heb Visual Basic 2008

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 13 januari 2010 @ 20:46:
Ik ben een beetje aan het stoeien met Visual Basic en ben een Browser aan het schrivjen.
With all due respect maar, nee, dat ben je niet ;)
Je hebt een IE object op een form gezet en maakt er je eigen "windowchrome" om heen. Een browser schrijven houdt in dat je HTML/CSS/JS/etc. etc. gaat parsen/interpreteren/weergeven/etc., dat je netwerkconnecties op zet, caches beheert, afbeeldingen rendert, etc. etc. Daar komt echt héél wat meer bij kijken ;) Dan had je ook het probleem niet dat je nu hebt; dan was je zelf namelijk verantwoordelijk voor de daadwerkelijke code die nu een nieuwe browser opent i.p.v. een tabblad ;)
Verwijderd schreef op woensdag 13 januari 2010 @ 20:46:
Is dit mogelijk, zo ja waar moet ik dan vooral op letten. weet iemand hier een oplossing voor, of misschien een betere oplossing wat functioneler is.
Als ik me niet vergis heeft de (web?)browser control een zooi events. 1 Daarvan wordt als ik me goed herinner OnBeforeWindowOpen ofzo aangeroepen. Dat event zou je moeten kunnen vangen en zelf afhandelen.

Een goed startpunt is een degelijke zoekactie welke je gewoon bij MSDN brengt op de voor jou relevante pagina. Na even verder kijken dan je neus lang is kom je al gauw hier en (o.a.) hier uit, waar je verder mee zou moeten kunnen komen.

[ Voor 20% gewijzigd door RobIII op 13-01-2010 21:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RobIII schreef op woensdag 13 januari 2010 @ 20:54:
...
Een goed startpunt is een degelijke zoekactie welke je gewoon bij MSDN brengt op de voor jou relevante pagina. Na even verder kijken dan je neus lang is kom je al gauw hier en (o.a.) hier uit, waar je verder mee zou moeten kunnen komen.
ik heb zon beetje de hele avond zitten proberen met die code, maar het lukt me niet echt, ik heb momenteel dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    Dim browse As New WebBrowser

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        browse.Name = "Phenwexplorer"
        browse.Dock = DockStyle.Fill
        AddHandler browse.DocumentCompleted, AddressOf browser_done
        TabControl1.TabPages.Add(tabcounter, "Page " & tabcounter + 1)
        TabControl1.SelectTab(tabcounter)
        TabControl1.SelectedTab.Controls.Add(browse)
        tabcounter = tabcounter + 1
        If tabcounter = 0 Or tabcounter = 1 Then
            TabToolStripMenuItem1.Enabled = False
        Else
            TabToolStripMenuItem1.Enabled = True
        End If
        For Each item As String In My.Settings.Bookmarks
            ListBox1.Items.Add(item)
        Next
    End Sub

Private Sub browse_NewWindow3(ByRef ppDisp As Object, ByRef Cancel As Boolean, ByVal dwFlags As Long, ByVal bstrUrlContext As String, ByVal bstrUrl As String)
        Cancel = True
    End Sub

maar de pagina blijft openen in IE7
De code die als laatst staat, heb ik van de site waar je naar verwees. heb ik iets vergeten of heb ik ergens een typfout? ik ben vrij nieuw met Visual basic.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je cancelled het event (ALS je al het juiste event hebt, er zijn er namelijk 3 van, zoals ik je ook al wees) maar doet verder niets :? Heb je al gewoon eens een breakpoint gezet op regel 21 in bovenstaande code? Heb je uberhaupt gedebugged (Debuggen: Hoe doe ik dat?)? Dat is een integraal onderdeel van ontwikkelen; ongeacht of je nieuw bent met een taal en ongeacht de taal for that matter.

edit:
Sterker nog: Ik zie niet eens waar je het NewWindow3 event aan je webbrowser control hangt :? Ik mis een "Private Sub bla(foo bar) Handles foobar" als ik me niet vergis?

[ Voor 24% gewijzigd door RobIII op 14-01-2010 21:14 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
kun je me aub uitleggen hoe ik de newwindow3 event kan handle-en ik kan dat namelijk niet vinden, sorrie ik ben heel slecht in zoeken en ben al de hele avond ermee bezig, ik zou het fijn vinden als je me vertelt hoe ik het kan doen en hoe ik ervoor kan zorgen dat de url van de popup in een variabele kan komen. ik vind het erg lastig hoe het geschreven is op http://msdn.microsoft.com/en-us/library/aa768337(VS.85).aspx alvast bedankt voor de uitleg

edit:
ik heb al het een en ander geprobeerd met handle, maar ook dat lukt niet echt. zou je misschien een voorbeeld kunnen geven, zodat ik eht wat beter kan begrijpen (vanwege me engels ook)

[ Voor 17% gewijzigd door Verwijderd op 15-01-2010 00:07 . Reden: aanvulling ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op vrijdag 15 januari 2010 @ 00:04:
kun je me aub uitleggen hoe ik de newwindow3 event kan handle-en ik kan dat namelijk niet vinden, sorrie ik ben heel slecht in zoeken en ben al de hele avond ermee bezig, ik zou het fijn vinden als je me vertelt hoe ik het kan doen en hoe ik ervoor kan zorgen dat de url van de popup in een variabele kan komen. ik vind het erg lastig hoe het geschreven is op http://msdn.microsoft.com/en-us/library/aa768337(VS.85).aspx alvast bedankt voor de uitleg

edit:
ik heb al het een en ander geprobeerd met handle, maar ook dat lukt niet echt. zou je misschien een voorbeeld kunnen geven, zodat ik eht wat beter kan begrijpen (vanwege me engels ook)
Sorry, ik leef volgens het motto:
Give a man a fish and feed him for a day. Teach a man how to fish and feed him for a lifetime.
:Y)

Maar zo moeilijk is het toch niet om even een paar keywords (die je hier allemaal hebt gehad) in Google te gooien? Of deze?

Je weet wel hoe je een button-click event afhandelt? Zo ja: Same thing. Zo nee: dat is echt basic VB.Net kennis. Heb je die (nog) niet, geen probleem. We zijn allemaal ooit met niks begonnen. Maar neem dan even de tijd en ga er voor zitten om eens een tutorial door te nemen. Verwacht geen wonderen na 2 avondjes sleuren-en-pleuren in Visual Studio. (Goed) Programmeren is nou eenmaal niet makkelijk.

Om toch een tipje van de sluier te lichten: Klik eens op het bliksemschichtje in je "Properties" window. Dan zie je alle events van de geselecteerde control. En als het goed is zie je daar dan ook een NewWindow(2/3) event tussen staan. Bekijk diezelfde events-lijst ook eens bij een button en zie daar alle events die een button raisen kan.

Edit:
Hmmm, als je een "gewone" browsercontrol op je form gemikt hebt dan is er maar 1 NewWindow event. Toch vond ik zomaar de oplossing (1e hit).
Dan ga daar ook even aan werken; 99% van de informatie die je vindt (of gaat vinden) is in het Engels geschreven en programmeren zélf is veelal ook in 't Engels. Foutmeldingen, keywords, you name it. Allemaal Engels.

En dan heb ik nog een bron van info voor je. :)

[ Voor 23% gewijzigd door RobIII op 15-01-2010 00:28 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
thnx et werkte :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ruim anderhalf jaar later? Thnx maar deze schop is me wat te oud :)

[ Voor 44% gewijzigd door RobIII op 17-06-2011 15:52 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.