Interactuar con un formulario en una página HTM cargada en un control WebBrowser implica invocar los métodos y funciones de los objetos reales que están en esa página: botones, campos de texto, objetos de mapa, mapas de bits, tablas, etc. Es decir objetos que se pueden manipular visualmente en un webform.
Pero el caso es que cuando quieres hacer algo con los que contienen, o poner o sacar datos de ellos desde afuera del webform, por ejemplo, usando una aplicación basada en WindowsForms, muchas veces esos métodos no existen sino que los programas como scripts (ASP o Javascript)
En estos casos, las soluciones que tienes son:
1. Invocar los métodos que realmente existen, como es el caso de Value para los textobox.
2. Agregarle un método a la clase de ese objeto en ese html, para lo cual debes incluir en el prototipo de la clase, en el script, algo como esto (está en JavaScript):
Código javascript
:
Ver originalGMap2.prototype.cargar = function()
{
coder=false;
var contenido = document.getElementById("geoposiciones").value;
var lineas = new Array();
var columnas = new Array();
var lat;
var lng;
lineas = contenido.split("\n");
for(k = 0; k < lineas.length;k++)
{
columnas = lineas[k].split(",");
lat = parseFloat(columnas[1]);
lng = parseFloat(columnas[0]);
var punto = new GPoint(lat,lng);
dibujar(punto);
}
coder=true;
}
GMap2.prototype.limpiar = function()
{
map.clearOverlays();
markers = new Array();
polyPoints = new Array();
}
Estas dos funciones apuntan a un objeto mapa de google (GMap2), para agregarle una función para agregar un conjunto de coordenadas, y otro para eliminar todo lo que haya dibujado (son completamente funcionales).
A eso me refiero con que debes sobrecargar la clase, es decir, agregar un método en forma dinámica, para un uso específico.
Como ejemplo, este es el uso del segundo método en un botón:
Código vb.net:
Ver originalPrivate Sub BtnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBorrar.Click
Dim myDoc As HTMLDocumentClass = WebMap.Document
myDoc.parentWindow.execScript("map.limpiar();", "JavaScript")
End Sub
¿Ahora se entiende la idea?