本文实例讲述了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(); } }
网页:
<!DOCTYPE HTML PUBliC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <head> <Title></Title> <script language="JavaScript" type="text/JavaScript"> function messageBox(message) { alert(message); } </script> </head> <body> <button onclick="window.external.MyMessageBox('JavaScript访问C#代码')">JavaScript访问C#代码</button> <a href="JavaScript:window.external.MyMessageBox1()">JavaScript访问C#代码</a> <a href="JavaScript:window.external.ShowForm()">JavaScript访问C#代码</a> </body></HTML>
补充:
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#通过html调用WinForm的方法全部内容,希望文章能够帮你解决C#通过html调用WinForm的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)