winform调用html,C#通过html调用WinForm的方法

本文实例讲述了c#通过html调用winform的方法。分享给大家供大家参考,具体如下:

完整测试代码:

form1.cs:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

namespace test

{

[system.runtime.interopservices.comvisibleattribute(true)]

public partial class form1 : form

{

public form1()

{

initializecomponent();

}

private void form1_load(object sender, eventargs e)

{

system.io.fileinfo file = new system.io.fileinfo(application.startuppath+@"\test1.htm");

webbrowser1.url = new uri(file.fullname);

webbrowser1.objectforscripting = this;

}

private void button1_click(object sender, eventargs e)

{

object[] objects = new object[1];

objects[0]="c#访问javascript脚本";

webbrowser1.document.invokescript("messagebox", objects);

}

public void mymessagebox(string message)

{

messagebox.show(message);

}

}

}

类winoper:

[system.runtime.interopservices.comvisibleattribute(true)]

public class winoperationclass

{

public void mymessagebox1()

{

messagebox.show(message);

}

public void showform()

{

form2 f2 = new form2();

f2.windowstate = formwindowstate.normal;

f2.show();

}

}

网页:

function messagebox(message)

{

alert(message);

}

javascript访问c#代码

javascript访问c#代码

javascript访问c#代码

补充:

webbrowser1.objectforscripting = this;

这句话的意思是webbrowser1的脚本执行的com绑定的方法是 从form1 来的,而mymessagebox1和showform却是在winoperationclass类里面的,肯定是不行的。

第一个可以是因为form1里面有mymessagebox这个方法,你吧mymessagebox1和showform移动到form1中或者把mymessagebox移动到winoperationclass里面,再把

webbrowser1.objectforscripting = this;

这句改成

winoperationclass w=new winoperationclass();

webbrowser1.objectforscripting = w;

就可以了

推荐第二种……把所有的 com可见的方法放在一个类里面好维护

希望本文所述对大家c#程序设计有所帮助。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值