C#开发中webBrowser控件和窗体通信案例研究

来源 :科学与财富 | 被引量 : 0次 | 上传用户:ppt1000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要] 针对B/S开发模式的流行和需求,利用C#开发窗体时,WebBowser控件的利用无疑是个不错的选择,WebBowser控件可以兼容目前大多数网络资源的呈现和访问,作为VS.net开发工具自身的控件,使用人员可以方便的应用。因此如何在窗体和WebBowser控件之间,进行数据传递,是很多开发人员必须面对的一个问题,本文从一个实例入手来分析建立数据传递的整个过程。
  [关键词] 窗体 WebBowser 事件
  
  信息技術的不断深入发展,推动了网络技术的更新,各种新型的网络应用呈现繁荣的状态,人们开始更习惯利用网络浏览器来完成各种工作,VS dot net开发工具中自带了WebBowser控件,主要用于Windows环境下的网页浏览用;用于窗体开发,可以利用网页炫丽的图片、文字、动画以及JavaScript、Asp语言呈现的种种特效来美化窗体,这也是一些高端用户经常要求;甚至利用这个控件可以开发其核心基于Internet Explorer(IE)的专业网络浏览器。由于利用Linux其它操作系统的用户毕竟是少数,因此开发基于Windows窗体环境的C/S、B/S应用架构满足目前很多用户提出的需求:可以定制所需要的网络资源、数据对内透明、定制IE所需功能防止用户其它操作等。所有开发的前提就是WebBrowser控件如何同Windows 窗体进行数据传递,需要那些事件来响应这些操作,下面,通过一个实例来研究数据传值和事件响应的问题。
  一、HTML语法研究
  Hypertext Markup Language(HTML)是超文本标记语言,其目的在于运用标记(tag)使文件达到预期的显示效果,目前已经发展到HTML 4.01版。随后发展了XHTML语言,它比HTML的语法更加严格。
  WebBrowser可以加载的*.htm、*.html和*.xhtml文件。这些网页文件中的各元素都有自己独有的标记方式。比如:
   图形标记:用以插入图库及设定图形属性。
   连结标记:加入连结。
  框架设定:用于设定网页框架。
  通过tag标记可以对网页中各元素进行判断,这就为网页同窗体间的通信提供了一个非常好的通道。
  二、WebBrowser控件[1]
  WebBrowser是一个在.NET Framework 2.0版中新增的.的控件类。使用WebBrowser控件类使用户可以在Windows窗体应用程序中导航网页以及支持浏览器的其它文档。例如可以使用WebBrowser控件在应用程序中提供基于HTML的集成用户帮助或Web浏览功能。此外,还可以使用 WebBrowser控件向Windows窗体客户端应用程序添加Web的现有控件。
  WebBrowser控件在使用中由于加载页面的内容量很大,会占用较大的系统资源,使用完该控件后一定要调用Dispose方法,以便确保及时释放资源。而且必须在附加事件的同一线程上调用Dispose方法,该线程应始终是消息或用户界面(UI)线程。
  三、WebBrowser控件和窗体通信实例
  下面,就通过一个实例来展示WebBrowser控件如何向窗体传递参数。
  开发环境是Windows XP SP2,.NET Framework 3.5,Visual Studio.NET 2008。
  1、打开Visual Studio.NET 2008,选择使用C#语言开发,新建一个工程Webbrowserandform。
  打开工具箱,选择WebBrowser控件、contextMenuStrip控件放置到窗体。
  在窗体的命名空间处添加:
  using System.Threading;
  “保存图片”属性Name:saveAsImageToolStripMenuItem;
  “设置成桌面”属性Name:setAsDesktopWallpaperToolStripMenuItem;
  “打开”属性Name:openToolStripMenuItem;
  “刷新”属性Name:refreshToolStripMenuItem。
  2、在窗体Load事件中添加如下代码
  webBrowser1.Navigate("http://www.example.com");
  webBrowser1.ContextMenuStrip=contextMenuStrip1;
  webBrowser1.IsWebBrowserContextMenuEnabled=false;
  3、自定义鼠标右击函数contextMenuStrip1_Opening()
  private void contextMenuStrip1_Opening(object sender,CancelEventArgs e)
  {
  Point ScreenCoord=new Point(MousePosition.X, MousePosition.Y);
  Point BrowserCoord=webBrowser1.PointToClient(ScreenCoord);
  HtmlElement elem=webBrowser1.Document.GetElementFromPoint(BrowserCoord);
  for(int i=0; i  {
  contextMenuStrip1.Items[i].Visible=false;
  }
  switch(elem.TagName)
  {
  case "A":
  openToolStripMenuItem.Visible=true;
  break;
  case "IMG":
  saveAsImageToolStripMenuItem.Visible=true;
  setAsDesktopWallpaperToolStripMenuItem.Visible=true;
  break;
  default:
  refreshToolStripMenuItem.Visible = true;
  break;
  }
  }
  4、运行结果
  按下F5运行后,界面如下,点击鼠标右键,会出现设计的右键菜单。
  四、结论
  通过实例展示,可以说明WebBowser控件内的网页内容可以和Windows窗体进行通信。
  参 考 文 献
  [1]http://msdn.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.■
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
其他文献
模板支护工作是工程项目现场施工过程中的重要内容之一,也是施工人员生命安全和施工质量的重要保障。当前施工单位在现场管理工作中十分重视施工项目模板支护工作,也探索出了一
本文在管道支吊架分类的基础上,详细介绍了在石油化工装置的管道设计中支吊架设计应严格遵循的选用原则和设置方法,并结合管系应力和运行安全的需要,说明了在石油化工管道设计中
在西藏的博物馆和寺庙内,至今保存着大量历朝中央政府颁赐给西藏地方官员的敕诰印信,这些珍贵的文物资料承载着重要的历史,是汉藏民族政治和文化关系的重要见证。文章选取两
期刊
本文以西藏博物馆馆藏之清代西藏地方噶厦政府俗官服饰作为主要研究对象,通过实物资料与文献资料、图像资料的分析比较,就清代西藏地方噶厦政府官员服饰形成的历史进程以及俗
政务诚信受到党和国家的高度重视,要把诚信建设摆在突出位景。政务诚信缺失,给党和人民的事业带来很多危害,要进一步加强政务诚信建设,进而不断加强党的执政能力建设。
<正> 农民战争是不是社会革命蔡美彪提出,中国封建社会里的农民战争虽然也是一种革命,“但它是不同于社会革命的另一种性质的革命。”孙祚民表示赞同。他说,社会革命,是由孕育在封建社会制度母体内部的新生产力同原有的旧生产关系之间的矛盾所引发的。其历史任务是推翻旧社会制度,建立新社会制度,导致社会形态的交替。而农民战争,“乃是发生于封建社会中前期、亦即封建社会形态内部的革命。导致这种革命的矛盾,不是新生产力与封建生产关系之间的矛盾,而是封建生产关系固有的矛盾,即封建生产过
本文对安多各大寺院进行分期,涉及格鲁派在安多的兴起,特别关注北京和拉萨对这些机构的强大影响。一共分四个时期:1412年-1459年、1596年-1652年、1673年-1733年、1748年-188
<正> 哲学根本问题是“一个”还是“两个”的问题,从讨论的过程中看来,决不是简单的名词之争,而是由此牵涉到很多问题,值得探讨。在我看来,这首先来自于对哲学根本问题的不同理解;由此也就产生了看法上的分歧。要回答哲学根本问题究竟是一个还是两个,必须考察一下什么是哲学的根本问题,以及为什么它是哲学的根本问题。其次,作为哲学上的两大基本派刖——唯物主义和唯心主义之间的斗争,是随着条件的变化而在不同的历史时期采取了不同的形态,唯物主义和唯心主义自身各有其不同的发展阶段和表现形式。同时,无论是在过去和现
摘要:随着我国经济生活水平的飞速发展,公路隧道的施工建设也有着快速的发展。但是因为设计方面和施工方面都存在的种种问题,导致公路隧道出现裂缝的情况屡见不鲜。本文浅谈公路隧道了设计方面的问题:比如围岩体以及围岩应力动态变化过程的不确定性,不完整、失真的围岩应力模型,不吻合的隧道结构轴线与围岩应力轴线,直墙式隧道和无仰拱隧道的设计等存在的缺陷等等。另外还讨论了有关公路隧道施工过程中应注意的技术问题;包括
本刊经常收到许多青年同志来稿。有的写得比较好,采用了;有的写得比较差,或者不合本刊性质,退还了。对各地青年同志积极投稿,热情支持,我们很感谢。但由于人力所限,退稿时往往不能提出具体意见,对此,我们深表歉意!为了答谢各地青年同志的热情支持,也为了反映青年同志在科学研究中的一些情况,我们特地邀请了十多位经常关心本刊的青年作者谈谈他们在科学研究中的心得和体会。这些体会,也许对一些青年同志有所启发和帮助,也许能鼓舞青年同志更加努力写稿,更加积极地参加学术研究和学术讨论。同时也希望能引起学术界前辈的注意和关怀,从