2) dokumentet bør først tages i brug efter messagebox'en har været op, hvor der står "done!", følgende kode vælger option 4 i comboboxen: private void button1_Click(object sender, System.EventArgs e) { IHTMLDocument3 doc = axWebBrowser1.Document as IHTMLDocument3; IHTMLElement element = doc.getElementById("demo3"); element.setAttribute("selected", (object)true, 0); }
det der er ideen i ovenstående kode er, at give sine elementer et ID - på denne måde bliver det nemmere at hente elementer og manipulere dem:
elementet hentes ved at kalde: IHTMLDocument3 doc = axWebBrowser1.Document as IHTMLDocument3; IHTMLElement element = doc.getElementById( <<<<<ID HERE>>>>>); hvor <<<<<ID HERE>>>>> er en streng der indeholder ID'et på elementet, f.eks demo3.
elementets attributter sættes ved at bruge metoden setAttribute: element.setAttribute("selected", (object)true, 0);
Den skal vælge ud fra en value: <html> <body> <SELECT ID=demo VALUE="Enter a value"> <option value="demo1">1</option> <option value="demo2">2</option> <option value="demo3">3</option> <option value="demo4" selected>4</option> </select> </body> </html>
hvor man: løber gennem alle elementer, hvis man møder et elemet med det rigtige id(select elementet), kigger man i dens children (alle under elementer).
disse underelementer tjekkes for om deres value er "demo3" eller hvad man nu har givet metoden i optionValue. Og så vælges den på gældende option (der brude jo egentlig være et break; efter child.setAttribute - da man er færdig med søgningen her)
så den færdige "selectCombo" metode vil se således ud: void SelectCombo(string id, string optionValue) { IHTMLDocument2 htmlDoc = (axWebBrowser1.Document) as IHTMLDocument2; IHTMLElementCollection elements = htmlDoc.all; foreach(IHTMLElement element in elements) { if(string.Compare(element.tagName, "SELECT", true)==0) { IHTMLElementCollection children = element.children as IHTMLElementCollection; foreach(IHTMLElement child in children) { string attr = (string)child.getAttribute("Value", 0); if(attr == null) continue; if(string.Compare(attr,optionValue,true)==0) { child.setAttribute("Selected", (object)true, 0); break; } } } } }
og når man så fjerne id argumentet bliver det til : void SelectCombo(string optionValue) { IHTMLDocument2 htmlDoc = (axWebBrowser1.Document) as IHTMLDocument2; IHTMLElementCollection elements = htmlDoc.all; foreach(IHTMLElement element in elements) { if(string.Compare(element.tagName, "SELECT", true)==0) { IHTMLElementCollection children = element.children as IHTMLElementCollection; foreach(IHTMLElement child in children) { string attr = (string)child.getAttribute("Value", 0); if(attr == null) continue; if(string.Compare(attr,optionValue,true)==0) { child.setAttribute("Selected", (object)true, 0); break; } } } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.