摘要:本文将带你了解C#编程之通过html调用WinForm的方法,希望本文对大家学C#/.Net有所帮助。
本文实例讲述了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.ObjectFor<d>Script</d>ing = this; } private void button1_Click(object sender, EventArgs e) { object[] objects = new object[1]; objects[0]="C#访问<d>javascript</d>脚本"; webBrowser1.Document.Invoke<d>Script</d>("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> <<d>script</d> language="<d>javascript</d>" type="text/<d>javascript</d>"> function messageBox(message) { alert(message); } </<d>script</d>> </head> <body> <button onclick="window.external.MyMessageBox('<d>javascript</d>访问C#代码')"><d>javascript</d>访问C#代码</button> <a href="<d>javascript</d>:window.external.MyMessageBox1()"><d>javascript</d>访问C#代码</a> <a href="<d>javascript</d>:window.external.ShowForm()"><d>javascript</d>访问C#代码</a> </body> </html> 补充: webBrowser1.ObjectFor<d>Script</d>ing = this; 这句话的意思是webBrowser1的脚本执行的Com绑定的方法是 从Form1 来的,而MyMessageBox1和ShowForm却是在WinOperationClass类里面的,肯定是不行的。 第一个可以是因为form1里面有MyMessageBox这个方法,你吧MyMessageBox1和ShowForm移动到form1中或者把MyMessageBox移动到WinOperationClass里面,再把 webBrowser1.ObjectFor<d>Script</d>ing = this; 这句改成 WinOperationClass w=new WinOperationClass(); webBrowser1.ObjectFor<d>Script</d>ing = w;
就可以了
以上就介绍了C#.NET的相关知识,希望对C#.NET有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言C#.NET频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号