Новое окно в WebBrowser

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Новое окно в WebBrowser

Сообщение mdx » 10.03.2006 (Пт) 18:01

Открываю страницу в компоненте webbrowser (из Windows Forms 2.0) Если нажать на любой ссылке "Открыть в новом окне", то появится окно Internet Explorer. Мне надо, чтобы открывался новый экземпляр моей формы (и, естественно, показывал нужную страницу). Как такое сделать? В vb6 + Microsoft Internet Controls можно было подменить Disp в событии NewWindow. В WebBrowser ничего похожего найти не удалось :cry:
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 11.03.2006 (Сб) 12:38

Public Event Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs)
Member of System.Windows.Forms.WebBrowser

отменяешь запрос и создаёшь новый WebBrowser с запрошенным URL
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 11.03.2006 (Сб) 13:44

Код: Выделить всё
    Private Sub WebBrowser_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser.Navigating
        If e.TargetFrameName = "_blank" Then e.Cancel = True
    End Sub

Вроде как ничего не должно открываться... Открываю http://bbs.vbstreets.ru/, щелкаю на баннере... И открывается Internet Explorer :evil:
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 11.03.2006 (Сб) 14:20

Нашел решение:
WebBrowser из WinForms - на свалку!
Пользуюсь обычным ocx'ом. Там - по событию NewWindow3
Код: Выделить всё
    Private Sub WebBrowser1_NewWindow3(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow3Event) Handles WebBrowser1.NewWindow3
        Dim nForm As Browser = New Browser
        nForm.Show()
        e.ppDisp = nForm.WebBrowser1.GetOcx
    End Sub

Мож кому ещё пригодится...
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 11.03.2006 (Сб) 22:46

mdx писал(а):Мож кому ещё пригодится...


наврятли)))
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 12.03.2006 (Вс) 19:43

А у кого-нибудь вообще получалось сделать по Navigating? если получалось, то киньте код плиз. Хочется всё-таки стандартными компонентами пользоваться...
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 13.03.2006 (Пн) 0:19

Загрузил VS2003 - компонент WebBrowser не обнаружил.
Сделал вывод что ты сидишь на VS2005.
Если это так, то почему не используешь событие
WebBrowser_NewWindow? И никаких OCX. У меня все получилось.

Есть один непонятный момент. Если ты в контекстном меню выбираешь "Открыть в новом окне", то какого лешего ты делаешь в Navigating??? Это событие в данном случае не происходит.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 20.12.2007 (Чт) 10:00

mdx писал(а):Нашел решение:
WebBrowser из WinForms - на свалку!
Пользуюсь обычным ocx'ом. Там - по событию NewWindow3
Код: Выделить всё
    Private Sub WebBrowser1_NewWindow3(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow3Event) Handles WebBrowser1.NewWindow3
        Dim nForm As Browser = New Browser
        nForm.Show()
        e.ppDisp = nForm.WebBrowser1.GetOcx
    End Sub

Мож кому ещё пригодится...



Сорри за поднятие старой темы.
А где берется этот ОСХ - я сам не в восторге от встроенного в студию браузера а вот где найти что то другое непонятно.

MAV-32
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 12.03.2006 (Вс) 15:56

Re: Новое окно в WebBrowser

Сообщение MAV-32 » 22.03.2009 (Вс) 19:23

У меня похожая проблема. Такое дело, я леплю небольшой браузер на основе стандартного элемента WebBrowser. Но на многих веб страницах имеются ссылки открывающие новое окно браузера. В данном случае у меня открывается IE8. Так вот мне хочется чтобы открывалось окно моего браузера по этому пишу код:

Код: Выделить всё
Private Sub WebBrowser1_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles wb1.NewWindow
        e.Cancel = True
        Dim a As New Form1
        a.Show()

End Sub


Но при этом мне нужно передать адрес из ссылки в новое окно - a.wb1.Navigate(). Так вот, мой вопрос - где взять адрес той ссылки чтобы передать его в новое окно? :)

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Новое окно в WebBrowser

Сообщение dr.MIG » 22.03.2009 (Вс) 21:22

Что-то последнее время всех интересует этот вопрос :).

Здесь поднимался подобный вопрос, который был успешно решен. Единственное, этот код для VB6.0, но он с минимальными изменениями легко переводится на .Net.
Salus populi suprema lex

MAV-32
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 12.03.2006 (Вс) 15:56

Re: Новое окно в WebBrowser

Сообщение MAV-32 » 23.03.2009 (Пн) 19:02

Извините меня дурака, но что-то не получается этот код на VB 2008 переконвертить... Я по этому и отписался в этой теме. Вот решил я взять код из той темы и вставить в VB.NET. Вроде как всё должно работать но не работает, я и библиотеку подключил и пространство имён объявил, но всё равно вылезает IE8 вместо того чтобы загрузится в моей проге.

Я просто новичок в VB.NET. Может я неправильно функцию для события объявил? Она на VB.NET пишется не так как на VB6? :(


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 74

    TopList  
cron