Csharp/C#教程:C#通过html调用WinForm的方法分享

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

完整测试代码:

Form1.cs:

usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usingSystem.Windows.Forms; namespacetest { [System.Runtime.InteropServices.ComVisibleAttribute(true)] publicpartialclassForm1:Form { publicForm1() { InitializeComponent(); } privatevoidForm1_Load(objectsender,EventArgse) { System.IO.FileInfofile=newSystem.IO.FileInfo(Application.StartupPath+@"test1.htm"); webBrowser1.Url=newUri(file.FullName); webBrowser1.ObjectForScripting=this; } privatevoidbutton1_Click(objectsender,EventArgse) { object[]objects=newobject[1]; objects[0]="C#访问javascript脚本"; webBrowser1.Document.InvokeScript("messageBox",objects); } publicvoidMyMessageBox(stringmessage) { MessageBox.Show(message); } } }

类WinOper:

[System.Runtime.InteropServices.ComVisibleAttribute(true)] publicclassWinOperationClass { publicvoidMyMessageBox1() { MessageBox.Show(message); } publicvoidShowForm() { Form2f2=newForm2(); f2.WindowState=FormWindowState.Normal; f2.Show(); } }

网页:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"> <html> <head> <title></title> <scriptlanguage="javascript"type="text/javascript"> functionmessageBox(message) { alert(message); } </script> </head> <body> <buttononclick="window.external.MyMessageBox('javascript访问C#代码')">javascript访问C#代码</button> <ahref="javascript:window.external.MyMessageBox1()">javascript访问C#代码</a> <ahref="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;

这句改成

WinOperationClassw=newWinOperationClass(); webBrowser1.ObjectForScripting=w;

就可以了

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

更多关于C#相关内容感兴趣的读者可查看本站专题:《WinForm控件用法上述就是C#学习教程:C#通过html调用WinForm的方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/907090.html

(0)
上一篇 2021年10月24日
下一篇 2021年10月24日

精彩推荐