c#中用axWebBrowser中提交表单,或点击某个对象
来源:互联网 发布:分子动力学 软件ms 编辑:程序博客网 时间:2024/05/17 06:59
test.htm
<form id="form1">
<INPUT language=javascript class=button id=Btton style="BORDER-TOP-STYLE: groove; BORDER-RIGHT-STYLE: groove; BORDER-LEFT-STYLE: groove; BORDER-BOTTOM-STYLE: groove" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " type=submit value="Start" onclick="alert('dd')" name=Btton>
</form>
<input type="button" onclick="alert('test')" id="button1">
-----------------------------------------------------------------------------------
form1.cs
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using mshtml;
namespace WindowsApplication2
...{
/**//// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
...{
private AxSHDocVw.AxWebBrowser axWebBrowser1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
/**//// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
...{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/**//// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
...{
if( disposing )
...{
if (components != null)
...{
components.Dispose();
}
}
base.Dispose( disposing );
}
Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
...{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.axWebBrowser1 = new AxSHDocVw.AxWebBrowser();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).BeginInit();
this.SuspendLayout();
//
// axWebBrowser1
//
this.axWebBrowser1.Enabled = true;
this.axWebBrowser1.Location = new System.Drawing.Point(80, 184);
this.axWebBrowser1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axWebBrowser1.OcxState")));
this.axWebBrowser1.Size = new System.Drawing.Size(300, 150);
this.axWebBrowser1.TabIndex = 0;
//
// button1
//
this.button1.Location = new System.Drawing.Point(160, 96);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(88, 24);
this.button1.TabIndex = 1;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(304, 96);
this.button2.Name = "button2";
this.button2.TabIndex = 2;
this.button2.Text = "button2";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(584, 397);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.axWebBrowser1);
this.Name = "Form1";
this.Text = "Form1";
((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).EndInit();
this.ResumeLayout(false);
}
#endregion
/**//// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
...{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
...{
object x = System.Reflection.Missing.Value;
axWebBrowser1.Navigate(@"E:/Documents and Settings/Administrator/桌面/test.htm", ref x, ref x, ref x, ref x);
}
private void button2_Click(object sender, System.EventArgs e)
...{
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)axWebBrowser1.Document;
mshtml.IHTMLFormElement f1 =(mshtml.IHTMLFormElement)doc.all.item ("form1",0);
((mshtml.IHTMLFormElement)(f1)).submit();
mshtml.IHTMLElement Element = (mshtml.IHTMLElement)doc.all.item("button1", 0);
Element.click();
}
}
}
附:如何模拟IE中的表单提交?
1. 如果使用的是WebBrowser控件:
你可以访问整个HTML DOM,设置input value, 然后submit:
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)webbrowser.Document;
mshtml.IHTMLInputElement ele = (mshtml.IHTMLInputElement)doc.all.item("name", 0);
ele.value = "user";
...
mshtml.IHTMLFormElement ele = (mshtml.IHTMLFormElement)doc.all.item("myform", 0);
ele.submit();
2. 如果没有使用WebBrowser,可以直接用WebRequest:
WebRequest req = WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
Stream stream = req.GetRequestStream();
stream.Write(bytes, 0, bytes.Length);
//bytes是byte[]形式的request字符串,如name=user&password=helloworld。
- c#中用axWebBrowser中提交表单,或点击某个对象
- c#中用axWebBrowser中提交表单,或点击某个对象
- 表单提交中form.action,form.submit()问题 *** 对象不支持此属性或方法
- 点击图片提交表单
- springMVC中from表单提交对象
- form表单提交提示对象不支持此属性或方法
- 点击C#某个按钮
- C# 关于从List或Collection中找出对象的某个属性值与另一个list相同的全部对象
- 在html中点击<button>自动提交表单问题
- form表单中name属性值为submit时,无法提交,出现"对象不支持此属性或方法"
- 回车键提交表单(点击按钮)
- 回车键提交表单(点击按钮)
- a标签点击跳转或表单提交前弹出确认框
- a标签点击跳转或表单提交前弹出确认框
- a标签点击跳转或表单提交前弹出确认框
- 在Struts中用超链接提交表单
- JS检测对象中是否有某个属性或方法
- 从提交表单中通过反射获取多个对象
- 在ASP.NET中实现多文件上传
- IIS错误代码列表 汇总
- 如何提高IIS 5.0网站伺服器的执行效率呢?
- 大亚DB102-C用户不可错过的美篇——不断流的DB102-C(白色版)
- 给年轻工程师的十大忠告!
- c#中用axWebBrowser中提交表单,或点击某个对象
- 通用WEB SERVICES 检查域名是否被注册
- 大亚DB102-C的ADSL modem的路由功能
- 老鼠爱大米、黄牛爱蛤蟆
- 求住 谁能帮我用java或c语言 实现一下公式 任意输入数字可出结果~~
- 爱真的需要勇气,勇气需要我么?
- 关于session的一些问题
- 增强JavaScript中的日期构造函数[原创]
- 如何成为一名JAVA初级程序员