快站如何做网站,福州门户网站建设,wordpress大学 主题,响应式网页设计针对的终端有实用方法1#xff1a;获取状态栏信息 void webBrowser1_StatusTextChanged(object sender, EventArgs e){ label1.Text webBrowser1.StatusText;} 实用方法2#xff1a;页面跳转后改变地址栏地址//在Navigated事件处理函数中改变地址栏地址是最恰当的#xff1a;private… 实用方法1获取状态栏信息 void webBrowser1_StatusTextChanged(object sender, EventArgs e){ label1.Text webBrowser1.StatusText;} 实用方法2页面跳转后改变地址栏地址 //在Navigated事件处理函数中改变地址栏地址是最恰当的private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e){ textBox1.Text webBrowser1.Url.ToString();} 实用方法3设置单选框 //建议使用执行单击事件的方式来设置单选框而不是修改属性webBrowser1.Document.GetElementById(RBT_A).InvokeMember(click); 实用方法4设置联动型下拉列表 //比较常见的联动型多级下拉列表就是省/市县选择了这种情况下直接设置选择项的属性不会触发联动需要在最后执行触发事件函数才能正常工作foreach (HtmlElement f in s.GetElementsByTagName(option)){if (f.InnerText 北京) { f.SetAttribute(selected, selected); }else { f.SetAttribute(selected, ); }}s.RaiseEvent(onchange); 以上四种方法转于http://www.cnblogs.com/SkyD/archive/2009/04/23/1441696.html 实用方法一在WinForm中相应Web事件 假设HTML源代码如下 html body input typebutton idbtnClose value关闭 / /body /html HtmlDocument htmlDoc webBrowser.Document; HtmlElement btnElement htmlDoc.All[btnClose]; if (btnElement ! null) { btnElement.click new HtmlElementEventHandler(HtmlBtnClose_Click); }//很简单吧那么稍稍高级一点的——我们都知道一个HTML元素可能有很多各种各样的事件而HtmlElement这个类只给出最常用、共通的几个。那么如何响应其他事件呢这也很简单只需要调用HtmlElement的AttachEventHandler就可以了btnElement.AttachEventHandler( new EventHandler(HtmlBtnClose_Click)); //这一句等价于上面的btnElement.click new HtmlElementEventHandler(HtmlBtnClose_Click); 对于其他事件把onclick换成该事件的名字就可以了。例如 formElement.AttachEventHandler(onsubmit, new EventHandler(HtmlForm_Submit)); 实用方法二模拟表单自动填写和提交 假设有一个最简单的登录页面输入用户名密码点“登录”按钮即可登录。已知用户名输入框的id或Name下同是username密码输入框的id是password“登录”按钮的id是submitbutton那么我们只需要在webBrowser的DocumentCompleted事件中使用下面的代码即可 HtmlElement btnSubmit webBrowser.Document.All[submitbutton]; HtmlElement tbUserid webBrowser.Document.All[username]; HtmlElement tbPasswd webBrowser.Document.All[password]; if (tbUserid null || tbPasswd null || btnSubmit null) return; tbUserid.SetAttribute(value, smalldust); tbPasswd.SetAttribute(value, 12345678); btnSubmit.InvokeMember(click); 关于表单的提交的确还有另一种方法就是获取form元素而不是button并用form元素的submit方法 HtmlElement formLogin webBrowser.Document.Forms[loginForm]; //…… formLogin.InvokeMember(submit); 本文之所以没有推荐这种方法是因为现在的网页很多都在submit按钮上添加onclick事件以对提交的内容做最基本的验证。如果直接使用form的submit方法这些验证代码就得不到执行有可能会引起错误。 实用方法三调用脚本首先是调用Web页面的脚本中已经定义好的函数。假设HTML中有如下Javascript function DoAdd(a, b) {return a b;} 那么我们要在WinForm调用它只需如下代码即可 object oSum webBrowser.Document.InvokeScript(DoAdd, new object[] { 1, 2 });int sum Convert.ToInt32(oSum); 其次如果我们想执行一段Web页面中原本没有的脚本该怎么做呢这次.Net的类没有提供看来还要依靠COM了。IHTMLWindow2可以将任意的字符串作为脚本代码来执行。 string scriptline01 function ShowPageInfo() {;string scriptline02 var numLinks document.links.length; ;string scriptline03 var numForms document.forms.length; ;string scriptline04 var numImages document.p_w_picpaths.length; ;string scriptline05 var numScripts document.scripts.length; ;string scriptline06 alert(网页的统计结果\r\n链接数 numLinks ;string scriptline07 \r\n表单数 numForms ;string scriptline08 \r\n图像数 numImages ;string scriptline09 \r\n脚本数 numScripts);};string scriptline10 ShowPageInfo();;string strScript scriptline01 scriptline02 scriptline03 scriptline04 scriptline05 scriptline06 scriptline07 scriptline08 scriptline09 scriptline10;IHTMLWindow2 win (IHTMLWindow2)webBrowser.Document.Window.DomWindow;win.execScript(strScript, Javascript); 以上三种实用方法转于http://www.cnblogs.com/smalldust/archive/2006/03/08/345561.html 最后在脚本中调用WinForm里的代码这个可能吗 呵呵当然是可能的。 下面的代码示例演示如何使用 ObjectForScripting 属性。在该示例中ObjectForScripting 属性被设置为当前窗体。 using System; using System.Windows.Forms; using System.Security.Permissions; [PermissionSet(SecurityAction.Demand, NameFullTrust)] [System.Runtime.InteropServices.ComVisibleAttribute(true)] public class Form1 : Form { private WebBrowser webBrowser1 new WebBrowser(); private Button button1 new Button(); [STAThread] public static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } public Form1() { button1.Text call script code from client code; button1.Dock DockStyle.Top; button1.Click new EventHandler(button1_Click); webBrowser1.Dock DockStyle.Fill; Controls.Add(webBrowser1); Controls.Add(button1); Load new EventHandler(Form1_Load); } private void Form1_Load(object sender, EventArgs e) { webBrowser1.AllowWebBrowserDrop false; webBrowser1.IsWebBrowserContextMenuEnabled false; webBrowser1.WebBrowserShortcutsEnabled false; webBrowser1.ObjectForScripting this; // Uncomment the following line when you are finished debugging. //webBrowser1.ScriptErrorsSuppressed true; webBrowser1.DocumentText htmlheadscript function test(message) { alert(message); } /script/headbodybutton οnclick\window.external.Test(called from script code)\ call client code from script code/button /body/html; } public void Test(String message) { MessageBox.Show(message, client code); } private void button1_Click(object sender, EventArgs e) { webBrowser1.Document.InvokeScript(test, new String[] { called from client code }); } } http://www.cnblogs.com/08shiyan/archive/2011/04/22/2023861.html 转载于:https://blog.51cto.com/neicole/1107142