2011-04-19 31 views
5

¿Alguien sabe de un tutorial para usar el objeto System.Windows.Forms.WebBrowser? Eché un vistazo pero no pude encontrar uno. El código que tengo hasta ahora es (el mismo complejo):Cómo utilizar el objeto .net webBrowser

System.Windows.Forms.WebBrowser b = new System.Windows.Forms.WebBrowser(); 
b.Navigate("http://www.google.co.uk"); 

pero en realidad no navegar en cualquier lugar (iebUrl es nulo, b.Document es nulo, etc.)

Gracias

Respuesta

5

Toma tiempo para que el navegador para navegar a una página. El método Navigate() hace no el bloque hasta que se completa la navegación, que congelaría la interfaz de usuario. El evento DocumentCompleted se activa cuando termina. Tienes que mover tu código a un controlador de eventos para ese evento.

Un requisito adicional es que el hilo en el que crea un WB es un hogar feliz para los componentes COM de subproceso único. Debe ser STA y bombear un bucle de mensaje. Una aplicación de modo de consola no no cumple este requisito, solo un proyecto de Winforms o WPF tiene dicho hilo. Consulte this answer para obtener una solución que sea compatible con los programas en modo consola.

0

Es un control muy simple. Uso siguiente código

// Navigates to the URL in the address box when 
// the ENTER key is pressed while the ToolStripTextBox has focus. 
private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     Navigate(toolStripTextBox1.Text); 
    } 
} 

// Navigates to the URL in the address box when 
// the Go button is clicked. 
private void goButton_Click(object sender, EventArgs e) 
{ 
    Navigate(toolStripTextBox1.Text); 
} 

// Navigates to the given URL if it is valid. 
private void Navigate(String address) 
{ 
    if (String.IsNullOrEmpty(address)) return; 
    if (address.Equals("about:blank")) return; 
    if (!address.StartsWith("http://") && 
     !address.StartsWith("https://")) 
    { 
     address = "http://" + address; 
    } 
    try 
    { 
     webBrowser1.Navigate(new Uri(address)); 
    } 
    catch (System.UriFormatException) 
    { 
     return; 
    } 
} 

// Updates the URL in TextBoxAddress upon navigation. 
private void webBrowser1_Navigated(object sender, 
    WebBrowserNavigatedEventArgs e) 
{ 
    toolStripTextBox1.Text = webBrowser1.Url.ToString(); 
} 

También puede utilizar este ejemplo

Extended Web Browser

0

Coloque un control webbrowser en un formulario y establezca AllowNavigation en verdadero. A continuación, agregue un control de botón y en su evento de clic, escriba webBrowser.Navigate ("http://www.google.co.uk") y espere a que se cargue la página.

Para una muestra rápida también puede usar webBrowser.DocumentText = "<html><title>Test Page</title><body><h1> Test Page </h1></body></html>". Esto le mostrará la página de muestra.

-2

Si usted está tratando de abrir un navegador y lo estoy haciendo muy básico, la respuesta de todo el mundo es muy complejo .. soy muy nuevo en C# (1 semana en) y yo acabamos de hacer este código:

string URL = "http://google.com"; 
object browser; 
browser = System.Diagnostics.Process.Start("iexplore.exe", URL) 

//This opens a new browser and navigates to the site of your URL variable 
+3

Esto no responde la pregunta sobre 'System.Windows.Forms.WebBrowser' –

+0

Por perder tiempo leyéndolo. Esto no utiliza el control WebBrowser, previsto en la pregunta. – fcm

+0

@fcm Las respuestas alternativas pueden ser útiles para las personas que pueden apreciar una sugerencia que los lleve fuera de la caja. – AnthonyVO

Cuestiones relacionadas