国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#通過html調用WinForm的方法

2020-01-24 01:11:52
字體:
來源:轉載
供稿:網友

本文實例講述了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#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凯里市| 余姚市| 嘉兴市| 灌阳县| 株洲县| 广水市| 上犹县| 五家渠市| 永昌县| 县级市| 连山| 垫江县| 清镇市| 东乡族自治县| 桓台县| 青田县| 五指山市| 南京市| 鄯善县| 高唐县| 淮南市| 新竹市| 涿州市| 体育| 上思县| 天长市| 泸溪县| 崇文区| 重庆市| 名山县| 若尔盖县| 维西| 海门市| 咸丰县| 内乡县| 新巴尔虎左旗| 阿克苏市| 黄骅市| 分宜县| 南川市| 广州市|