欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#通過html調(diào)用WinForm的方法

 更新時間:2016年04月20日 11:38:52   作者:且行且思  
這篇文章主要介紹了C#通過html調(diào)用WinForm的方法,涉及html頁面中使用JavaScript訪問C#的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了C#通過html調(diào)用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();
    }
  }

網(wǎng)頁:

<!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>

補(bǔ)充:

webBrowser1.ObjectForScripting = this;

這句話的意思是webBrowser1的腳本執(zhí)行的Com綁定的方法是 從Form1 來的,而MyMessageBox1和ShowForm卻是在WinOperationClass類里面的,肯定是不行的。

第一個可以是因?yàn)閒orm1里面有MyMessageBox這個方法,你吧MyMessageBox1和ShowForm移動到form1中或者把MyMessageBox移動到WinOperationClass里面,再把

webBrowser1.ObjectForScripting = this;

這句改成

WinOperationClass w=new WinOperationClass();
webBrowser1.ObjectForScripting = w;

就可以了

推薦第二種……把所有的 Com可見的方法放在一個類里面好維護(hù)

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#常見控件用法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)

希望本文所述對大家C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C# 解壓gizp文件(.tgz)的實(shí)例

    C# 解壓gizp文件(.tgz)的實(shí)例

    下面小編就為大家分享一篇C# 解壓gizp文件(.tgz)的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#快速實(shí)現(xiàn)IList非泛型類接口的自定義類作為數(shù)據(jù)源

    C#快速實(shí)現(xiàn)IList非泛型類接口的自定義類作為數(shù)據(jù)源

    本文主要介紹了C#快速實(shí)現(xiàn)IList非泛型類接口的自定義類作為數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • c#基礎(chǔ)學(xué)習(xí)之封裝

    c#基礎(chǔ)學(xué)習(xí)之封裝

    說到封裝,其實(shí)是比較基礎(chǔ)類的問題,它為程序設(shè)計(jì)提供了系統(tǒng)與系統(tǒng),模塊與模塊,類與類之間交互的實(shí)現(xiàn)手段
    2013-09-09
  • C#取得隨機(jī)顏色的方法

    C#取得隨機(jī)顏色的方法

    這篇文章主要介紹了C#取得隨機(jī)顏色的方法,通過自定義函數(shù)實(shí)現(xiàn)隨機(jī)顏色的功能,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-01-01
  • C#的3DES加密解密算法實(shí)例代碼

    C#的3DES加密解密算法實(shí)例代碼

    這篇文章主要介紹了C#的3DES加密解密算法實(shí)例代碼,有需要的朋友可以參考一下
    2013-11-11
  • 自定義WPF窗體形狀的實(shí)戰(zhàn)記錄

    自定義WPF窗體形狀的實(shí)戰(zhàn)記錄

    WPF是制作界面的一大利器,下面這篇文章主要給大家介紹了關(guān)于自定義WPF窗體形狀的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們一起來看看吧
    2018-09-09
  • C#實(shí)現(xiàn)字母與ASCII碼互相轉(zhuǎn)換

    C#實(shí)現(xiàn)字母與ASCII碼互相轉(zhuǎn)換

    ASCII是基于拉丁字母的編碼系統(tǒng),也是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),本文主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)字母與ASCII碼互轉(zhuǎn),需要的可以參考下
    2024-01-01
  • 最新評論