浅谈C#下winform和JS的互相调用和传参(webbrowser)

不多说,直接上代码,winform下button1调用js函数,从html页面获取值,然后JS调用WINFORM的函数,传送获取到的值到winform并通过messagebox的方法show出来。一步到位,winform调用JS函数和JS调用winform函数的方法都有了。

C#的winform下代码如下:

[System.Runtime.InteropServices.ComVisible(true)]
  public partial class Form1 : Form
  {

    public Form1()
    {
      InitializeComponent();

      webBrowser1.Navigate(Application.StartupPath + @".\edt\index.html");
      this.webBrowser1.ObjectForScripting = this;
    }

    //对获取到的UBB编辑器内容进行处理的函数【piikee注】
    public void getContext(string message)
    {
      MessageBox.Show(message);
    }
    private void button1_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.InvokeScript("go"); //调用html页面的JS函数来传参数和运行winForm下的函数    }
  }

webbrowser中html页面的中JS函数代码如下:

function go()
{
window.external.getContext(nEditor.tGetUBB());//nEditor.tGetUBB是一个获取UBB编辑器内容的函数,此处可以直接写要传递给WINFORM的字符串,记得字符串要加双引号。

}

注意重点: [System.Runtime.InteropServices.ComVisible(true)]和  this.webBrowser1.ObjectForScripting = this;这两句是必需品。

以上这篇浅谈C#下winform和JS的互相调用和传参(webbrowser)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C#的WEBBROWSER与JS交互小结

    本文实例总结了C#的WEBBROWSER与JS交互的方法.分享给大家供大家参考.具体实现方法如下: 一.实现WebBrowser内部跳转,阻止默认打开IE 1.引用封装好的WebBrowserLinkSelf.dll实现 复制代码 代码如下: public partial class MainWindow : Window {        private WebBrowser webBrowser = new WebBrowser();          public MainWindow()

  • c#和javascript函数相互调用示例分享

    在设置过webBrowser控件的ObjectForScripting属性后,还需要设置应用程序对com可见,不然会抛出一个异常(ObjectForScripting 的类必须对 COM 可见.请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性.),可做如下设置: [System.Runtime.InteropServices.ComVisible(true)] 例如: 复制代码 代码如下: [ComVisible(true)]    public partial class

  • 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 { [Syst

  • 浅谈C#下winform和JS的互相调用和传参(webbrowser)

    不多说,直接上代码,winform下button1调用js函数,从html页面获取值,然后JS调用WINFORM的函数,传送获取到的值到winform并通过messagebox的方法show出来.一步到位,winform调用JS函数和JS调用winform函数的方法都有了. C#的winform下代码如下: [System.Runtime.InteropServices.ComVisible(true)] public partial class Form1 : Form { public Fo

  • 浅谈jQuery添加的HTML,JS失效的问题

    如下图所示, 点击添加后,会新添加一行,但是二级联动就失效了, $('.provinceList').live('change', function(){ var provinceId = $(this).val(); var obj = $(this); $.post('/yuyue/ajaxCityList', {'provinceId':provinceId}, function(list){ var data = eval( '(' + list + ')' ); if( data .

  • 浅谈webpack下的AOP式无侵入注入

    说起来, 面向切面编程(AOP)自从诞生之日起,一直都是计算机科学领域十分热门的话题,但是很奇怪的是,在前端圈子里,探讨AOP的文章似乎并不是多,而且多数拘泥在给出理论,然后实现个片段的定式)难免陷入了形而上学的尴尬境地,本文列举了两个生产环境的实际例子论述webpack和AOP预编译处理的结合,意在抛砖引玉.当然,笔者能力有限,如果有觉得不妥之处,还请大家积极的反馈出来, 共同进步哈. 重要的概念 AOP: 面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. Joi

  • 浅谈如何循序渐进的学好JS

    目录 概述 1.清楚js的定位 2.清晰的学习路线 3.自律坚持 4.多练多写 5.从多角度去学习和领悟 6.注意培养自信心 7.多写学习总结 8.构建专属知识导图 概述 在我们第一阶段完成HTML+CSS的学习之后,很多同学都会被第二阶段JS难倒--JS语法.JS数据类型.JS对象,Js给我们的印象总是那么的"复杂",因为它相比html来说是动态的,是编程语言,更深奥一些.想要熟练掌握js难度很大,不过如果你把知识点梳理清楚,真正的理解并加以运用,你就可以掌握它.那么该如何才能学好J

  • 浅谈sqlserver下float的不确定性

    很多时候,大家都知道,浮点型这个东西,本身存储就是一个不确定的数值,你永远无法知道,它是 0 = 0.00000000000000123 还是 0 = 0.00000000000999这样的东西.也许一开始使用的时候没有问题,但是有时候做统计的时候,就会看出端倪 简单的举个例子,就知道统计的时候,有可能出现意外的效果,导致可能需要存储过程或者接收程序的代码左额外的取舍数位的处理,所以在此其实我是推荐使用Numeric来替代float进行一个替代使用,避免一个sum ,然后明明明细看每一条数据都是

  • 浅谈几种常用的JS类定义方法

    // 方法1 对象直接量 var obj1 = { v1 : "", get_v1 : function() { return this.v1; }, set_v1 : function(v) { this.v1 = v; } }; // 方法2 定义函数对象 var Obj = function() { var v1 = ""; this.get_v1 = function() { return this.v1; }; this.set_v1 = function

  • 浅谈Linux下通过find命令进行rm文件删除的小技巧

    我们经常会通过find命令进行批量操作,如:批量删除旧文件.批量修改.基于时间的文件统计.基于文件大小的文件统计等,在这些操作当中,由于rm删除操作会导致目录结构变化,如果要通过find结合rm的操作写成脚本,就会遇到一些麻烦,本文通过一个例子为大家进行介绍. 系统环境: SUSE Linux Enterprise Server 11 或 Red Hat Enterprise Linux 问题症状: 客户现场有一个自动化的脚本,有以下的find语句,每天运行以删除某个目录下7天以前的文件或目录,

  • 浅谈Linux下免密码切换到root用户当注意的问题

    Linux(以Centos系统为例子)下进行用户切换的时候,使用su. 一般如下: su username su - username 第一种方式,切换用户后,还是使用以前登录用户的环境变量,有时候运行有些程序会出问题. 第二种方式比较彻底,切换后,用户的环境变量也跟着变化,切换后就是当前用户的环境变量. 以上两点需要注意下. 我们切换到root用户的时候,直接使用su 或者su -,但是有个问题是,需要输入密码.这样比较麻烦.我们可以让某个用户无密码登录到root用户,需要进行如下的设置: v

  • 浅谈Linux下tar,jar压缩,解压的常用命令

    如下所示: tar cvf /data/d2/apps.tar apps cd /data01/applsrm/SRM tar xvf apps.tar jar cvf /data01/xxx.jar * cd wq jar xvf xxxx.jar 以上这篇浅谈Linux下tar,jar压缩,解压的常用命令就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 浅谈linux下的串口通讯开发

    串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一. Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串口,只需打开其设备文件即可操作串口

随机推荐