程序是这样的,在winForm里拖了一个webBrowser  如图,一大片空白:

C#winForm程序与html JS交互调用

然后这个winForm界面的代码:

1.注意这个类的头部必须加上以下代码:

[System.Runtime.InteropServices.ComVisible(true)]      在被调用方法类上加上[ComVisible(true)]标签,意思就是当前类可以com组件的形式供外包调用

C#winForm程序与html JS交互调用

2.然后是这个类的方法代码:

        #region winForm与js交互 提供js调用方法
        public void xmpf(string name, string value, bool trueOrfalse)
        {

            messageBox.Show(name);

        }

        #endregion 

3.在类的构造函数里加载页面代码:

        public AddOrderForm()
        {
            InitializeComponent();      

            string pathName = Application.StartupPath + "\\" + "HTMLPage1.htm";
            this.webBrowser1.ObjectForScripting = this;
            webBrowser1.Navigate(pathName);

        }

4.html页面代码:

<script language="javascript" type="text/javascript">


            function Radio1_onclick(obj) {
                    //js调用winform方法
                    window.external.xmpf(obj.name,obj.value, obj.checked);
            }

 </script>

          <input id="Radio1"  name="R1" type="radio" value="100" onclick="return Radio1_onclick(this)" />          --单选框

5.运行项目,点击单选框按钮,会弹出c# winform里的 提示框,就是会调用xmpf这个方法。



相关文章: