当前位置: 首页 > wzjs >正文

帝国建设网站网站分析

帝国建设网站,网站分析,商标注册代办公司,企业展厅设计专业品牌版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本节虽然叫做交互,但是之前的内容已经讲述如何在WebBrowser中调用页面的脚本,本节就不再累述,重…

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

本节虽然叫做交互,但是之前的内容已经讲述如何在WebBrowser中调用页面的脚本,本节就不再累述,重点讲讲如何通过网页脚本调用窗体的代码。

23.5.1.1 准备工作

本节中需要使用到的htm文件:code23-006-3.htm。

具体代码如下:

<html>

<head>

<meta http-equiv="content-type" content="text/html;charset=utf-8">

<title>这是配合C#教程的网页</title>

<style>

.inputbox {

         width:60px;

         border: 1px solid #6699FF;    

}

</style>

<script language="javascript">

function operation()

{

var args1=document.all("args1").value;

var args2=document.all("args2").value;

var option=document.all("option").value;

window.external.getValue(args1,args2,option);

function operation2()

{

var args1=document.all("args1").value;

var args2=document.all("args2").value;

var option=document.all("option").value;

finalvalues.value=window.external.getValue2(args1,args2,option);

}

</script>

</head>

<body>

<input type="text" name="args1" id="args1" value="" class="inputbox">

<select name="option" id="option">

         <option value="+" checked>+</option>

         <option value="-">-</option>

         <option value="*">*</option>

         <option value="/">/</option>

</select>

<input type="text" name="args2" id="args2" value="" class="inputbox">

=

<input type="text" name="finalvalues" id="finalvalues" value="" class="inputbox">

<br/><br/>

<input type="button" name="submit" id="submit" value="运算1" οnclick="operation()">

<input type="button" name="submit" id="submit" value="运算2" οnclick="operation2()">

</body>

</html>

这个htm页面运行显示如下:

图23-33 测试使用的网页

注意:网页代码脚本operation方法中window.external.方法名称(参数),这是调用窗体提供的方法所必须的。

23.5.1.2 C#中的设置

要实现从网页上调用窗体中的代码,必须完成三项工作:

1、使窗体上的类对网页可见;

2、在WebBrowser控件中打开的网页中的脚本能够访问定义的对象;

3、调用的方法必须确保为公共的。

第一项工作可以使用以下两个方法任选其一:

1、依次打开【项目属性】|【应用程序】|【程序集信息】,勾选中【使程序集COM可见】:

图23-34 设置【使程序集COM可见】

2、直接通过代码方式,通过使用 ComVisibleAttribute 对类进行标记使其成为 COM 可见的类,在Form类前面加上:

[System.Runtime.InteropServices.ComVisibleAttribute(true)]

public partial class Form1 : Form

第二项工作:设置WebBrowser.ObjectForScripting属性,它可由显示在WebBrowser控件中的网页所包含的脚本代码访问。只需要在窗体载入时,添加如下代码:

WebBrowser1.ObjectForScripting = this;

完成以上两项工作,设置要被网页要调用的方法为public就可以了。

23.5.1.3 实现交互

【例 23.25】【项目:code23-015】插入脚本。

    [System.Runtime.InteropServices.ComVisibleAttribute(true)]

    public partial class Form1 : Form

    {

        private void Form1_Load(object sender, EventArgs e)

        {

            WebBrowser1.ObjectForScripting = this;

            WebBrowser1.Navigate("http://localhost/code23-006-3.htm");

        }

        public void getValue1(string args1,string args2,string options )

        {

            int a1, a2;

            a1 = int.Parse(args1);

            a2 = int.Parse(args2);

            double values;

            switch( options)

            {

                case "+":

                    values = a1 + a2;

                    break;

                case "-":

                    values = a1 - a2;

                    break;

                case "*":

                    values = a1 * a2;

                    break;

                default:

                    values = (double)a1 / (double)a2;

                    break;

            }

            HtmlElement element;

            element = WebBrowser1.Document.GetElementById("finalvalues");

            element.SetAttribute("value", values.ToString());

        }

 }

运行结果如下图所示:

图23-35 调用窗体代码的计算结果

以上代码计算出两个数的运算结果,但是并没有向网页返回值,而是直接将值写回网页。如果需要将值返回到网页脚本,那么需要如下操作:

1、将网页代码中:

window.external.getValue(args1,args2,option);

修改为:

finalvalues.value=window.external.getValue(args1,args2,option);

2、将C#中的代码由无返回值修改为返回字符串:

        public string getValue(string args1, string args2, string options)

        {

            int a1, a2;

            a1 = int.Parse(args1);

            a2 = int.Parse(args2);

            double values;

            switch (options)

            {

                case "+":

                    values = a1 + a2;

                    break;

                case "-":

                    values = a1 - a2;

                    break;

                case "*":

                    values = a1 * a2;

                    break;

                default:

                    values = (double)a1 / (double)a2;

                    break;

            }

            return values.ToString();

        }

学习更多vb.net知识,请参看vb.net 教程 目录

学习更多C#知识,请参看C#教程 目录

 

http://www.dtcms.com/wzjs/348923.html

相关文章:

  • 长沙网络公司seo技术是什么意思
  • 一流的网站建设案例无锡营销型网站建站
  • 网站建设的google付费推广
  • 怎么做地区网站站长工具seo下载
  • 做微信公众号网站网站建设公司哪个好呀
  • 网站建设费无形资产摊销91关键词
  • 手机网站建设报价长沙免费网站建站模板
  • 快速提高网站排名百度推广首页登录
  • 49图库下浏览器竞价托管优化公司
  • 手机网站制作流程全自动推广引流软件免费
  • 党员网站管理系统培训管理平台
  • WordPress一键复制文章南昌seo计费管理
  • 手机网站制作注意事项批量查询指数
  • 济南疫情政策最新动态微信seo是什么意思
  • 做网站的广告词百度关键词搜索热度查询
  • 西安模板网站建设深圳搜索优化排名
  • 多语种网站建设网络营销网站有哪些
  • 上海开发网站网站seo关键词排名查询
  • 网站上面怎么做链接内容营销策略
  • 大良营销网站建设资讯沧州百度推广总代理
  • 用虚拟主机做网站重庆seo教程
  • 宜昌网站设计windows优化软件哪个好
  • 哈尔滨制作手机网站关键字挖掘机爱站网
  • 佛山网站设计讯息百度竞价开户3000
  • godaddy域名 网站公安局备案营销策略分析
  • 做相同性质的网站算侵权吗微信营销推广
  • 东莞网站高端建设浏览器下载大全
  • 网站销售国际新闻消息
  • 国外设计网站pinterest设计网址一套完整的运营方案
  • 西安的软件公司哪个比较厉害seopeixun