Hola Elektro,
Los problemas que tienes son por inexperiencia/falta de comprensión, no por mi culpa.
Por supuesto que si.
Estás cometiendo un error garrafal. Para empezar, todo eso que acabas de decir y de la forma en la que lo has dicho es un completo sin sentido, ¿entiendes lo que es una referencia, una propiedad, la librería mscorlib.dll y el papel que ésta juega en el CLR de .NET Framework?
En cuanto a saber lo que es una referencia, una propiedad y la libreria mscorlib.dll, si, si se lo que es.
En cuanto al papel que estos juegan en el CLR de .NET Framework, no, no se que papel juegan. Es mas, no se que es CLR. Y tampoco se a lo que te refieres con .NET Framework.
por que para hablarme de esa manera primero deberías cerciorarte de lo que hablas.
Te pones a intentar culpar y cuestionar a alguien que solo intenta ayudarte... ¿por el mero hecho de que algo no te funcione, y criticándome por haber cometido supuestos errores?. Evidentemente podría haber tenido un error (que no es el caso), por que no soy perfecto, pero en tal caso creo que habría otras formas de comunicármelo, ¿no?. Mira, antes de decir tonterías sin sentido, en lugar de eso mejor deberías limitarte a preguntar "¿por qué esto no me funciona?", y así yo te puedo explicar cual es el fallo sin hacerme enfadar.
Al principio de este comentario ya te he explicado por qué te ocurre lo que te ocurre, y te he explicado también como lo puedes solucionar, eso es todo lo que necesitas saber.
Bueno. El hecho de que te pregunte de donde sacaste eso me dices que te ofendi, que te critique, que te dije que tu eres el culpable?
Si te hubiera dicho: "De donde sacaste este mier**, que no funciona?". Eso si que seria ofenderte.
Yo dije: "Pero que cono?". Te sientes ofendido por eso? Porque no comprendo algo?
Nota que no escribi: "Pero que cono hiciste?".
Es mas, mira:
deberías limitarte a preguntar "¿por qué esto no me funciona?
No fue eso lo que hice?
Porque me dice string no tiene una deficion IsNullOrWhiteSpace.
Amigo. No te sientas ofendido. Quiza mi manera de expresarme te dio la impresion de querer ofenderte.
Ahora
Los problemas que tienes son por inexperiencia/falta de comprensión, no por mi culpa.
por que para hablarme de esa manera primero deberías cerciorarte de lo que hablas.
Mira, antes de decir tonterías sin sentido
No soy yo, mas bien, el que tiene razon para estar enfadado, y que, sin embargo, no lo estoy? Sin agregar que podria arriesgarme a ser baneado?
Bueno. Hice el metodo de IsNullOrWhiteSpace:
public static bool IsNullOrWhiteSpace(string value)
{
if (value != null)
{
for (int i = 0; i < value.Length; i++)
{
if (!char.IsWhiteSpace(value[i]))
{
return false;
}
}
}
return true;
}
Modifique un poco el codigo que me pasaste:
private void WebBrowserExtended1_DocumentMouseDown(object sender, HtmlElementEventArgs e)
{
// Creo una referencia corta de nuestro WebBrowser.
WebBrowserExtended wb = (WebBrowserExtended)sender;
switch (e.MouseButtonsPressed)
{
// El botón central del ratón se ha pulsado.
case MouseButtons.Middle:
// Obtengo el elemento Html que esté situadio en las coordenadas actuales del puntero del ratón.
HtmlElement element = wb.Document.GetElementFromPoint(e.ClientMousePosition);
// Comprobación de seguridad.
if (element != null)
{
// Obtengo el atributo href que contiene la url destino.
// Nótese que esto no funcionará con todo tipo de elementos,
// eso requiere una implementación/análisis/parsing más sofisticado sobre el elemento obtenido, y no es mi tarea hacer eso,
// pero esta metodología cubre la gran mayoría, que es lo que importa para poder extender este ejemplo funcional.
string url = element.GetAttribute("href");
// Comprobación de seguridad.
if (!WBrowser.IsNullOrWhiteSpace(url))
{
Uri uri = null;
// Antes de hacer nada más, compruebo que la url es realmente una url válida.
if (Uri.TryCreate(url, UriKind.RelativeOrAbsolute, out uri))
{
// Desactivo temporálmente la navegación de este WebBrowser;
// esto es como decirle: "no hagas nada, que yo me encargo de controlar el evento del ratón".
wb.AllowNavigation = false;
// Finálmente, aquí podemos hacer lo que queramos con la url obtenida. Por ejemplo:
addNewTab();
getCurrentBrowser().Navigate(uri);
}
else
{
// La supuesta url no tiene una sintaxis válida.
// Se puede ignorar, o controlar y considerarlo como error.
} // uri
} // url
} // element
break;
default:
// Si se ha pulsado un botón distinto al botón central del ratón,
// entonces habilito la navegación del WebBrowser para que controle el evento y navegue a la nueva url.
wb.AllowNavigation = true;
break;
}
}
Como vez, le puse esto:
addNewTab();
getCurrentBrowser().Navigate(uri);
Esto seria abrir una nueva Tab y abrir la URL.
Pero realmente no funciona. Visual Studio no me da error. Mi navegador se carga satisfactoriamente. Pero el codigo no me funciona.
Por supuesto, seguramente hice algo mal. Porque tu dijiste que lo probaste. Tienes alguna idea que error hice esta vuelta de nuevo.
O escribi una cosa que no tiene sentido de vuelta? No lo digo ironicamente. Yo aprendi a no enfandarme. Por favor dime. Para que tenga la posibilidad de mejorarme en el futuro.
Gracias y saludos
PD.: Perdon por los malentendidos.