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#相关内容感兴趣的读者可查看本站专题:《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#常见控件用法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》

希望本文所述对大家C#程序设计有所帮助。相关阅读:

C#设置右键菜单的方法

Android中AlertDialog各种对话框的用法实例详解

IIS下PHP的三种配置方式对比

深入理解Javascript中的循环优化

PHP记录搜索引擎蜘蛛访问网站足迹的方法

jQuery实现点击该行即可删除HTML表格行

分享两个手机访问pc网站自动跳转手机端网站代码

CSS实现段落首行缩进两个字符不再使用空格

Win10 Build 10049或下周发放给Slow Ring慢速内测用户

win7系统纯净版怎么设置隐藏usb设备?

JQuery异步加载无限下拉框级联功能实现示例

基于.NET 4.5 压缩的使用

HTC 8X可从wp8.1升级到Win10 Mobile预览版10536.1004

零基础学习AJAX之AJAX的简介和基础

winform调用html,C#_C#通过html调用WinForm的方法,本文实例讲述了C#通过html调用W - phpStudy...相关推荐

  1. 寻找某个数c语言,C++_C语言实现两个递减数列中寻找某一个数,本文实例讲述了C语言实现两个 - phpStudy...

    C语言实现两个递减数列中寻找某一个数 本文实例讲述了C语言实现两个递减数列中寻找某一个数的方法,分享给大家供大家参考之用.具体方法如下: 通常来说这道题算二分查找法中非常有难度的一题了. 题目如下: ...

  2. 骰子算法 php,C++_C++实现N个骰子的点数算法,本文实例讲述了C++实现N个骰子 - phpStudy...

    C++实现N个骰子的点数算法 本文实例讲述了C++实现N个骰子的点数算法,分享给大家供大家参考之用.具体方法如下: 题目要求:把n个骰子仍在地上,所有点数 实现代码如下: #include using ...

  3. php datatable导出excel,C#_C#实现将DataTable内容输出到Excel表格的方法,本文实例讲述了C#实现将DataTabl - phpStudy...

    C#实现将DataTable内容输出到Excel表格的方法 本文实例讲述了C#实现将DataTable内容输出到Excel表格的方法.分享给大家供大家参考.具体如下: 1.关于本文 本文描述了一个函数 ...

  4. java sqlite 多线程并发_C#_C#解决SQlite并发异常问题的方法(使用读写锁),本文实例讲述了C#解决SQlite并 - phpStudy...

    C#解决SQlite并发异常问题的方法(使用读写锁) 本文实例讲述了C#解决SQlite并发异常问题的方法.分享给大家供大家参考,具体如下: 使用C#访问sqlite时,常会遇到多线程并发导致SQLI ...

  5. shell脚本和python脚本和go脚本的区别_Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例-Go语言中文社区...

    NodeJS 子进程提供了与系统交互的重要接口,其主要 API 有: 1)标准输入.标准输出及标准错误输出的接口: child.stdin 获取标准输入 child.stdout 获取标准输出 chi ...

  6. php this指针的用法,C#_C#中this指针的用法示例,本文实例展示了C#中this指针的 - phpStudy...

    C#中this指针的用法示例 本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体内容如下: 一.this指针是什么: 这里有一些面向对象编程的概念需要说明:类(Cla ...

  7. asp.net 调用本地php,.NET_Asp.net获取服务器指定文件夹目录文件并提供下载的方法,本文实例讲述了Asp.net获取服务 - phpStudy...

    string dirPath = HttpContext.Current.Server.MapPath("uploads/"); if (Directory.Exists(dirP ...

  8. php 绘制圆角矩形,C#_C#画圆角矩形的方法,本文实例讲述了C#画圆角矩形 - phpStudy...

    C#画圆角矩形的方法 本文实例讲述了C#画圆角矩形的方法.分享给大家供大家参考.具体实现方法如下: protected void Page_Load(object sender, EventArgs ...

  9. itextsharp php,C#_C#使用iTextSharp设置PDF所有页面背景图功能实例,本文实例讲述了C#使用iTextSharp - phpStudy...

    C#使用iTextSharp设置PDF所有页面背景图功能实例 本文实例讲述了C#使用iTextSharp设置PDF所有页面背景图功能的方法.分享给大家供大家参考.具体如下: 在生成PDF 的时候,虽然 ...

最新文章

  1. String与StringBuffer的区别
  2. python【蓝桥杯vip练习题库】ADV-309进制转换
  3. php怎么输出mysql一条数据,MySQL数据输出在一个可打印的PHP变量
  4. linux cdc设备驱动程序,Linux Kernel 'cdc-wdm' USB设备驱动程序堆缓冲区溢出漏洞
  5. tensorboard运行
  6. php5.5升级到php5.6,从php5.5.9升级到php5.6之后,相当于php5enmod?
  7. MIFARE系列6《射频卡与读写器的通讯》
  8. c语言程序设计电大作业,2018年最新电大C语言程序设计作业答案.doc
  9. WPF 资源路径设置
  10. 2叉树排序缺失元素查找
  11. Android漫游记(1)---内存映射镜像(memory maps)
  12. 服务器server怎么显示后缀名,window7系统怎么显示文件后缀名(图文)
  13. AI玩游戏系列,机器学习玩游戏(1) 一维游戏
  14. Shiro基本入门教程—叩丁狼Java培训
  15. struts2 国际化 中文乱码英文不乱码问题
  16. O2O商城网站建设方案
  17. 16、Kanzi插件——通过Kanzi Engine插件创建自定义动作+代码解析
  18. 如何应对数千微服务组件带来的挑战?
  19. linux中使用crontab出现crontab: installing new crontab
  20. 厉害了,我的中国造@主动发力还是借力打力?——思华科技18年自主创新经验谈(上篇)...

热门文章

  1. 开始云私有云存储系统:让数据更安全高效
  2. 【转】面试前应该做好哪些准备?
  3. 懂商业的技术合伙人(5):初创公司的2个核心任务,团队练兵和探索方向
  4. STM32CubeMX串口中断偶校验问题
  5. forward 和 redirect 的区别?
  6. 新生报到管理系统毕业设计,新生报到系统代码论文需求分析,新生报到系统数据库设计开题需求分析
  7. MintUI 组件和MUI组件
  8. 使用ichartjs生成图表
  9. linux基础-vmware与Centos安装
  10. 西安网站设计-你可能还不知道吧!这个方法可以让你的网页更加精美