Estoy diseñando una pequeña aplicación C # y hay un navegador web en ella. Actualmente tengo todos mis valores predeterminados en mi computadora, dicen que Google Chrome es mi navegador predeterminado, pero cuando hago clic en un enlace en mi aplicación para abrir en una nueva ventana, se abre Internet Explorer. ¿Hay alguna forma de hacer que estos enlaces se abran en el navegador predeterminado? ¿O hay algo mal en mi computadora?
Mi problema es que tengo un navegador web en la aplicación, así que digamos que vaya a google y escriba "desbordamiento de pila" y haga clic derecho en el primer enlace y haga clic en "Abrir en una nueva ventana" se abre en IE en lugar de Chrome. ¿Es esto algo que he codificado incorrectamente o hay una configuración incorrecta en mi computadora?
=== EDITAR ===
Esto es realmente molesto. Ya soy consciente de que el navegador es IE, pero antes lo tenía funcionando bien. Cuando hice clic en un enlace, se abrió en Chrome. Estaba usando desarrollo agudo para hacer la aplicación en ese momento porque no pude hacer que c # express se iniciara. Hice una nueva instalación de Windows y como no estaba muy avanzada en mi aplicación, decidí comenzar de nuevo, y ahora tengo este problema. Es por eso que no estoy seguro de si es mi computadora o no. ¿Por qué IE iniciaría todo el navegador cuando se hace clic en un enlace en lugar de simplemente abrir el nuevo enlace en el navegador predeterminado?

Respuestas:
Solo puedes escribir
EDITAR : El
WebBrowsercontrol es una copia incrustada de IE.Por lo tanto, cualquier enlace dentro de él se abrirá en IE.
Para cambiar este comportamiento, puede manejar el
Navigatingevento.fuente
Process.Start(e.Url.ToString())Para aquellos que encuentran esta pregunta en dotnet core. Encontré una solución aquí
Código:
fuente
opencomando en lugar dexdg-openRuntimeInformation.IsOSPlatform(OSPlatform.OSX)¿O ya será cierto en Linux?xdg-commanddevuelve "xdg-open: comando no encontrado". Luego probé conopencomando y funciona.eso debería resolver tu problema
fuente
¿Intentó
Processcomo se menciona aquí: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?Podrías usar
fuente
UseShellExecuteel valor predeterminado es verdadero.true.Process.Start(url), no abre una nueva ventana del navegador.Echa un vistazo al control GeckoFX .
fuente
Prueba esto, a la vieja escuela;)
utilizando: openit ("www.google.com");
fuente
Después de investigar mucho, creo que la mayor parte de la respuesta dada no funcionará con dotnet core. 1
System.Diagnostics.Process.Start("http://google.com").; - No funcionará con el núcleo dotnet2. Funcionará pero bloqueará la apertura de la nueva ventana en caso de que el navegador predeterminado sea Chrome
A continuación se muestra el más simple y funcionará en todos los escenarios.
fuente
Esto abrió el valor predeterminado para mí:
fuente
dotnet corearroja un error si lo usamosProcess.Start(URL). El siguiente código funcionará endotnet core. Puede agregar cualquier navegador en lugar deChrome.fuente
En UWP:
fuente
Abrir dinámicamente
fuente
actualice el registro con la versión actual de explorer
@ "Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION"
fuente