基于项目的C#浏览器课程设计说明书_第1页
基于项目的C#浏览器课程设计说明书_第2页
基于项目的C#浏览器课程设计说明书_第3页
基于项目的C#浏览器课程设计说明书_第4页
基于项目的C#浏览器课程设计说明书_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书题目:基于项目的C#实训指导书——基于VC#的浏览器程序设计

毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:日期:

学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期:年月日导师签名:日期:年月日

注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日

评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日目录TOC\o"1-2"\h\z\u一、实训目的 4二、实训题目 4三、实训要求 4四、实训步骤 54.1、掌握浏览器工作原理 54.2学习浏览器工功能结构 64.3浏览器设计 74.3.1浏览器功能设计 74.3.2浏览器界面设计 74.3.3浏览器代码设计 74.4浏览器编写程序设计平台 84.5浏览器开发步骤 84.5.1熟悉VS2005以上平台,建立项目 84.5.2浏览器界面设计 10菜单栏设计 10工具栏、用户区和状态栏设计 11功能代码编辑 12五、程序源代码及功能模块设计 125.1初始化页面 125.2编辑浏览器基本功能 145.3编辑菜单栏功能 165.4编辑工具栏功能 265.5编辑IE命令功能 275.6编辑收藏夹功能类 285.7编辑搜索功函数 30六、程序运行测试 32七、项目小结 33八、附件 348.1学时分配 348.2参看文献 34一实训目的通过实训使学生在掌握VC#编程理论的基础上,推动学生初步掌握基于VC#的网络浏览器程序的编程方法,为今后的网络协议编程和Web服务编程打下基础。二实训题目使用C#网络编程语言,在VS2005版本以上平台编程,基于VC#的浏览器程序设计。三实训要求1.能够熟练使用VS2005以上版本的编程平台,熟悉平台菜单栏、工具栏和各种窗口的使用,掌握不同项目类型创建步骤和使用以及平台类库的使用。2.熟练掌握C#语法与程序结构,能够熟练创建程序功能所需的类、对象、接口等,并通过派生与继承实现代码重用,通过事件与消息实现对象之间的交互。3.熟练掌握权利浏览器程序所需的各种部件的使用,能够正确使用菜单、工具栏和窗口控件完成浏览器程序界面设计,并能够完成这些部件的相应响应函数代码编写,完成部件与函数之间的消息映射。4.按照软件工程的要求的功能分析、程序设计、代码编写、程序调试、功能测试等步骤,完成实训项目要求。5.提交“基于C#操作平台下实现的的浏览器器程序设计”设计方案与程序源代码。四实训步骤4.1掌握浏览器工作原理浏览器工作原理如图4-1所示。图4-1浏览器工作原理(1)浏览器分析超链指向页面的URL。(2)浏览器向DNS请求并解析的IP地址。(3)域名系统DNS解析出清华大学服务器的IP地址。(4)浏览器与服务器建立TCP连接(5)浏览器发出取文件命令:GET/chn/yxsz/index.htm。(6)服务器给出响应,把文件index.htm发送给浏览器。(7)TCP连接的释放。(8)浏览器显示文件index.htm中的所有文本信息4.2学习浏览器功能结构浏览器程序功能结构如图4-2所示。图4-2浏览器功能结构1)浏览器有一组客户、一组解释程序,以及管理这些客户和解释程序的控制程序。2)控制程序是其中的核心部件,它解释鼠标的点击和键盘的输入,并调用有关的组件来执行用户指定的操作。3)例如,当用户用鼠标点击一个超链的起点时,控制程序就调用一个客户从所需文档所在的远地服务器上取回该文档,并调用解释程序向用户显示该文档4)HTML解释程序是必不可少的,而其他的解释程序则是可选的。5)解释程序把HTML规格转换为适合用户显示硬件的命令来处理版面的细节。6)许多浏览器还包含FTP客户,用来获取文件传送服务。7)一些浏览器也包含电子邮件客户,使浏览器能够发送和接收电子邮件8)浏览器将它取回的每一个页面副本都放入本地磁盘的缓存中。9)当用户用鼠标点击某个选项时,浏览器首先检查磁盘的缓存。若缓存中保存了该项,浏览器就直接从缓存中得到该项副本而不必从网络获取,这样就明显地改善浏览器的运行特性。10)但缓存要占用磁盘大量的空间,而浏览器性能的改善只有在用户再次查看缓存中的页面时才有帮助。11)许多浏览器允许用户调整缓存策略。4.3浏览器设计4.3.1浏览器功能设计浏览器功能设计主要确定设计好的浏览器需要具备哪些功能,以及这些功能是以什么方式进行实现,这个步骤相当于软件设计中的“需求分析”,其中必须保证基本功能的具备,即浏览器必须能够浏览Web页面。4.3.2浏览器界面设计浏览器界面设计主要确定浏览器的页面布局,设定浏览器窗口上设置哪些功能菜单项、设置哪些功能按钮、设置哪些状态栏,它们各自的位置如何、属性如何、对应的变量如何等等。4.3.3浏览器代码设计浏览器代码设计主要是确定对上述的设计的功能在代码上怎样实现,包括选用的程序语言和编程平台选择、程序代码的编写、程序代码的调试、程序功能的测试等等。4.4浏览器编写程序设计平台(1)VS2005版本以上编程操作平台(2)WebBrowser类及其使用(3)一些浏览器程序的代码分析4.5浏览器开发步骤4.5.1熟悉VS2005以上平台,建立项目打开VS2005选择“创建项目”,进入“新建项目”,如图4-1所示。图4-1“新建项目”对话框在“新建项目”对话框的项目类型窗口中选中“VisualC#”作为项目开发语言,在模板窗口中选中“Windows应用程序”作为项目开发模板,在“名称”、“位置”编辑框中输入自己设定的项目名字和项目存储位置,本讲义使用“CSharp浏览器”作为项目名称,如图4-2所示。图4-2输入新建项目的属性完成输入内容后,单击“确定”按钮,进入项目VC#开发窗口“Form.cs[设计]”,如图4-3所示。图4-3VC#开发窗口“Form.cs[设计]”4.5.2界面设计菜单栏设计,如图所示。图4-4设计“文件”菜单图4-5设计“编辑”菜单图4-6设计“查看”菜单图4-7设计“收藏”菜单图4-8设计“工具”菜单工具栏、用户区和状态栏设计,如图所示图4-9工具栏和状态栏功能代码编辑双击“Form”设计页面进入代码编写页面如图所示:图4-10代码编写页面五程序源代码及功能模块设计:5.1初始化页面,代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;usingSystem.Threading;usingmshtml;usingSystem.Net;usingSystem.Runtime.InteropServices;usingSHDocVw;namespaceCSharp{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}//***********************************************////外部?API调用声明////***********************************************//[DllImport("User32.DLL")]publicstaticexternintSendMessage(IntPtrhWnd,uintMsg,intwParam,intlParam);[DllImport("User32.DLL")]publicstaticexternIntPtrFindWindowEx(IntPtrhwndParent,IntPtrhwndChildAfter,stringlpszClass,stringlpszWindow);//***********************************************////公用ID调用声明//***********************************************//publicintIDM_ADDFAVORITES=2261;//添加到收藏夹publicintID_IE_FILE_IMPORTEXPORT=374;//导入与导出publicintID_IE_FILE_SENDDESKTOPSHORTCUT=284;//桌面快捷方式publicintID_IE_FILE_NEWMAIL=279;//新建邮件publicuintWM_COMMAND=0x0111;//***********************************************////常用变量声明////***********************************************////intLianJie_btn_Cishu=0;//链接状态按钮单击次数stringurl_text;//导航栏的URL文本(用于普通的输网址浏览和回车浏¡览List<int>cishu=newList<int>();//储存寻找关键字符的位置?inti=0;//记录列表cishu的下标publicvoidLiuLan(){try{if(this.tabControl1.TabPages!=null){if(this.tabControl1.SelectedTab.Text=="空白页"){((CTabpage)(this.tabControl1.SelectedTab)).Navigate=url_text;}else{ThreadthdProcess=newThread(newThreadStart(Thread_NewNavigateTabPages));thdProcess.Start();}}}catch(System.Exceptionex){throwex;}}5.2编辑浏览器基本功能,代码如下://***********************************************////新建空白页方法////***********************************************//publicvoidNewNullTabPages(){CTabpagetabpage=newCTabpage(this);this.urlBox.Text="about:blank";this.tabControl1.TabPages.Add(tabpage);this.tabControl1.SelectedTab=tabpage;this.Text="空白页_CSharp浏览器";tabpage.Text="空白页";this.toolStripStatusLabel1.Text="CSharp浏览器";}//***********************************************////新建空白页线程////***********************************************//privatevoidThread_NewNullTabPages(){MethodInvokermi=newMethodInvoker(this.NewNullTabPages);this.BeginInvoke(mi);Thread.Sleep(20);}//***********************************************////新建有导航地址的页面////(用于普通的输入网址浏览和回车浏览)////***********************************************//publicvoidNewNavigateTabPages(){CTabpagetabpage=newCTabpage(this);this.tabControl1.TabPages.Add(tabpage);tabpage.Navigate=url_text;this.tabControl1.SelectedTab=tabpage;}//***********************************************////新建有导航地址的线程////(用于普通的输入网址浏览和回车浏览)////***********************************************//privatevoidThread_NewNavigateTabPages(){MethodInvokermi=newMethodInvoker(this.NewNavigateTabPages);this.BeginInvoke(mi);Thread.Sleep(20);}//***********************************************////按回车按钮进行浏览////***********************************************//privatevoidurlBox_KeyDown(objectsender,KeyEventArgse){if(e.KeyCode==Keys.Enter){url_text=this.urlBox.Text;LiuLan();}}//***********************************************////双击鼠标删除页面////***********************************************//privatevoidtabControl1_MouseDoubleClick(objectsender,MouseEventArgse){((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Dispose();tabControl1.TabPages[tabControl1.SelectedIndex].Dispose();if(tabControl1.TabPages.Count>=1){tabControl1.SelectedTab=tabControl1.TabPages[tabControl1.TabPages.Count-1];}}//***********************************************////进行页面切换////***********************************************//privatevoidtabControl1_SelectedIndexChanged(objectsender,EventArgse){if(this.tabControl1.SelectedTab!=null){this.urlBox.Text=((CTabpage)(this.tabControl1.SelectedTab)).Navigate;this.Text=((CTabpage)(this.tabControl1.SelectedTab)).ToolTipText;if(((CTabpage)(this.tabControl1.SelectedTab)).Text=="空白页"){this.Text="空白页_CSharp浏览器";}}else{ThreadthdProcess=newThread(newThreadStart(Thread_NewNullTabPages));thdProcess.Start();}}5.3编辑菜单栏功能,代码如下://***********************************************////打开链接状态////***********************************************//privatevoid打开连接状态_Click(objectsender,EventArgse){richTextBox1.Visible=true;panel3.Visible=true;}//***********************************************////清除链接状态////***********************************************//privatevoid清?除yToolStripMenuItem_Click(objectsender,EventArgse){richTextBox2.Clear();}//***********************************************////关闭链接状态栏////***********************************************//privatevoid关闭连接状态_Click(objectsender,EventArgse){richTextBox1.Visible=false;panel3.Visible=false;richTextBox1.Clear();}//***********************************************////清除链接状态栏(快捷菜单)////***********************************************//privatevoid清除连接状态_Click(objectsender,EventArgse){richTextBox1.Clear();}//***********************************************////关闭链接状态栏(快捷菜单)////***********************************************//privatevoid关闭链接状态栏ToolStripMenuItem1_Click(objectsender,EventArgse){richTextBox2.Visible=false;panel2.Visible=false;richTextBox2.Clear();}//***********************************************////查看源文件方法/////***********************************************//privatevoidGetHtmlSource(){stringMyurl=((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Url.ToString();System.IO.Streamstream=null;WebClientclient=newWebClient();stream=client.OpenRead(Myurl);StreamReaderreaderOfStream=newStreamReader(stream,System.Text.Encoding.GetEncoding("GB2312"));stringaa=readerOfStream.ReadToEnd();//Closethestream.stream.Close();richTextBox2.Text=aa;}//***********************************************////查看源文件按钮////***********************************************//privatevoid打开源文件_Click(objectsender,EventArgse){try{TextBox.Focus();richTextBox2.Visible=true;panel2.Visible=true;GetHtmlSource();}catch{MessageBox.Show("无法连接到该网站,或没打开网站,请检查您的网络是否正常","提示");richTextBox2.Visible=false;panel3.Visible=false;}}//***********************************************////查找源文件(下一步)////***********************************************//privatevoid下一个_Click(objectsender,EventArgse){richTextBox2.Focus();stringRichText,FindText;RichText=richTextBox2.Text;FindText=TextBox.Text;if(RichText.Contains(FindText)){i++;cishu.Add(richTextBox2.Find(FindText,cishu[i-1],RichText.Length,0));cishu[i]+=FindText.Length;}}//***********************************************////查找源文件(上一步)////***********************************************//privatevoid上一个_Click(objectsender,EventArgse){richTextBox2.Focus();stringRichText,FindText;RichText=richTextBox2.Text;FindText=TextBox.Text;if(RichText.Contains(FindText)&&i>0){inty=cishu[i-1];y-=FindText.Length;if(y<0){y+=FindText.Length;MessageBox.Show("到最上面,没有该查询","提示");}richTextBox2.Find(FindText,y,RichText.Length,0);i--;}else{MessageBox.Show("到最上面,没有该查询","提示");cishu.Clear();cishu.Add(0);i=0;}}//***********************************************////查找源文件(文本框变化)////***********************************************//privatevoidTextBox_TextChanged(objectsender,EventArgse){richTextBox2.SelectionColor=Color.Black;cishu.Clear();cishu.Add(0);i=0;}//***********************************************////新建空白页(菜单栏)////***********************************************//privatevoid空?白ã¡ÁBToolStripMenuItem_Click(objectsender,EventArgse){ThreadthdProcess=newThread(newThreadStart(Thread_NewNullTabPages));thdProcess.Start();}//***********************************************////关闭当前页(菜单栏)////***********************************************//privatevoid关?闭À?页°3面?ToolStripMenuItem_Click(objectsender,EventArgse){((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Dispose();tabControl1.TabPages[tabControl1.SelectedIndex].Dispose();if(tabControl1.TabPages.Count>=1){tabControl1.SelectedTab=tabControl1.TabPages[tabControl1.TabPages.Count-1];}}//***********************************************////关闭全部页(菜单栏)////***********************************************//privatevoid全¨?部?关?闭À?ToolStripMenuItem_Click(objectsender,EventArgse){tabControl1.TabPages.Clear();}//***********************************************////退出当前页(菜单栏)////***********************************************//privatevoid退ª?出?XToolStripMenuItem_Click(objectsender,EventArgse){Application.Exit();}//***********************************************////查看连接状态(菜单栏)////***********************************************//privatevoid查看连接状态ToolStripMenuItem_Click(objectsender,EventArgse){richTextBox1.Visible=true;panel3.Visible=true;}//***********************************************////清空连接状态(菜单栏)////***********************************************//privatevoid清空连接状态信息ToolStripMenuItem_Click(objectsender,EventArgse){richTextBox1.Clear();}//***********************************************////关闭连接状态(菜单栏)////***********************************************//privatevoid关闭连接状态ToolStripMenuItem_Click(objectsender,EventArgse){richTextBox1.Visible=false;panel3.Visible=false;richTextBox1.Clear();}//***********************************************////打开当前源文件(菜单栏)////***********************************************//privatevoid打开源文件ToolStripMenuItem_Click(objectsender,EventArgse){try{TextBox.Focus();richTextBox2.Visible=true;panel2.Visible=true;GetHtmlSource();}catch{MessageBox.Show("无法连接到该网站,或没打开网站,请检查您的网络是否正常","提示");//panel1.Dock=DockStyle.Fill;panel3.Visible=false;richTextBox2.Visible=false;}}//***********************************************////关闭当前源文件(菜单栏)////***********************************************//privatevoid关闭源文件ToolStripMenuItem_Click(objectsender,EventArgse){richTextBox2.Visible=false;panel2.Visible=false;richTextBox2.Clear();}//***********************************************////另存为(菜单栏)////***********************************************//privatevoid另存为ToolStripMenuItem_Click(objectsender,EventArgse){try{((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.ShowSaveAsDialog();}catch(System.Exceptionex){throwex;}}//***********************************************////属性(菜单栏)////***********************************************//privatevoid属性ToolStripMenuItem_Click(objectsender,EventArgse){try{((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.ShowPropertiesDialog();}catch(System.Exceptionex){throwex;}}//***********************************************////页面设置(菜单栏)////***********************************************//privatevoid页面设置ToolStripMenuItem_Click(objectsender,EventArgse){try{((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.ShowPageSetupDialog();}catch(System.Exceptionex){throwex;}}//***********************************************////打印预览(菜单栏)////***********************************************//privatevoid打印预览ToolStripMenuItem_Click(objectsender,EventArgse){try{((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.ShowPrintPreviewDialog();}catch(System.Exceptionex){throwex;}}//***********************************************////打印(菜单栏)////***********************************************//privatevoid打印ToolStripMenuItem_Click(objectsender,EventArgse){try{((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.ShowPrintDialog();}catch(System.Exceptionex){throwex;}}//***********************************************////添加到收藏夹(菜单栏)////***********************************************//privatevoid添加到收藏夹ToolStripMenuItem_Click(objectsender,EventArgse){try{FindInvokeIEServerCommand(IDM_ADDFAVORITES);}catch(System.Exceptionex){throwex;}}//***********************************************////整理收藏夹(菜单栏)////***********************************************//privatevoid整理收藏夹ToolStripMenuItem_Click(objectsender,EventArgse){try{ShellUIHelperhelper=newShellUIHelper();objecto=null;helper.ShowBrowserUI("OrganizeFavorites",refo);}catch(System.Exceptionex){throwex;}}//***********************************************////导入与导出(菜单栏)////***********************************************//privatevoid导入与导出ToolStripMenuItem_Click(objectsender,EventArgse){try{FindShellDocObjectViewCommand(ID_IE_FILE_IMPORTEXPORT);}catch(System.Exceptionex){throwex;}}//***********************************************////桌面快捷方式(菜单栏)////***********************************************//privatevoid桌面快捷方式ToolStripMenuItem_Click(objectsender,EventArgse){try{FindShellDocObjectViewCommand(ID_IE_FILE_SENDDESKTOPSHORTCUT);}catch(System.Exceptionex){throwex;}}//***********************************************////电子邮件(菜单栏)////***********************************************//privatevoid电子邮件tToolStripMenuItem_Click(objectsender,EventArgse){try{FindShellDocObjectViewCommand(ID_IE_FILE_NEWMAIL);}catch(System.Exceptionex){throwex;}}//***********************************************////Internet选项(菜单栏)////***********************************************//privatevoidinternet选项ToolStripMenuItem_Click(objectsender,EventArgse){try{System.Diagnostics.Process.Start("C://WINDOWS//system32//inetcpl.cpl");}catch(System.Exceptionex){throwex;}}//***********************************************////标准按钮(菜单栏)////***********************************************//privatevoid标准按钮ToolStripMenuItem_Click(objectsender,EventArgse){if(标准按钮ToolStripMenuItem.Checked==true){tsBut_NewNullTab.Visible=false;tsBut_Back.Visible=false;tsBut_Forward.Visible=false;tsBut_refurbish.Visible=false;tsBut_Stop.Visible=false;tsBut_HomePage.Visible=false;标准按钮ToolStripMenuItem.Checked=false;}else{tsBut_NewNullTab.Visible=true;tsBut_Back.Visible=true;tsBut_Forward.Visible=true;tsBut_refurbish.Visible=true;tsBut_Stop.Visible=true;tsBut_HomePage.Visible=true;标准按钮ToolStripMenuItem.Checked=true;}}//***********************************************////地址栏(菜单栏)////***********************************************//privatevoid地址栏ToolStripMenuItem_Click(objectsender,EventArgse){if(地址栏ToolStripMenuItem.Checked==false){toolStrip.Visible=true;地址栏ToolStripMenuItem.Checked=true;//btn_LiuLan.Visible=false;}else{toolStrip.Visible=false;地址栏ToolStripMenuItem.Checked=false;//btn_LiuLan.Visible=true;}}//***********************************************////状态栏(菜单栏)////***********************************************//privatevoid状态栏ToolStripMenuItem_Click(objectsender,EventArgse){if(状态栏ToolStripMenuItem.Checked==false){statusStrip1.Visible=true;状态栏ToolStripMenuItem.Checked=true;}else{statusStrip1.Visible=false;状态栏ToolStripMenuItem.Checked=false;}}5.4编辑工具栏功能,代码如下://***********************************************////按浏览按钮进行浏览////***********************************************//privatevoidtoolStripButton9_Click(objectsender,EventArgse){url_text=this.urlBox.Text;LiuLan();}//***********************************************////工具栏新建空页面////***********************************************//privatevoidtsBut_NewNullTab_Click(objectsender,EventArgse){ThreadthdProcess=newThread(newThreadStart(Thread_NewNullTabPages));thdProcess.Start();}//***********************************************////后退,返回先前页面////***********************************************//privatevoidtsBut_Back_Click(objectsender,EventArgse){((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.GoBack();}//***********************************************////前进,浏览新页面////***********************************************//privatevoidtsBut_Forward_Click(objectsender,EventArgse){((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.GoForward();}//***********************************************////刷新当前页面////***********************************************//privatevoidtsBut_refurbish_Click(objectsender,EventArgse){if(!((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Url.Equals("about:blank")){((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Refresh();}}//关闭当前页面privatevoidtoolStripButton1_Click(objectsender,EventArgse){((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Dispose();tabControl1.TabPages[tabControl1.SelectedIndex].Dispose();if(tabControl1.TabPages.Count>=1){tabControl1.SelectedTab=tabControl1.TabPages[tabControl1.TabPages.Count-1];}}//***********************************************////停止当前页面////***********************************************//privatevoidtsBut_Stop_Click(objectsender,EventArgse){((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Stop();}//***********************************************////回到当前主页////***********************************************//privatevoidtsBut_HomePage_Click(objectsender,EventArgse){((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.GoHome();}//***********************************************////单击搜索按钮////***********************************************//privatevoidButton_Find_Click(objectsender,EventArgse){search();}//***********************************************////回车进行搜索////***********************************************//privatevoidTextBox_FindNeiRong_KeyDown(objectsender,KeyEventArgse){if(e.KeyCode==Keys.Enter){search();}}5.5编辑IE命令功能,代码如下//***********************************************////调用IE隐藏命令////(即调用InternetExplorer_Server的命令)////***********************************************//privatevoidFindInvokeIEServerCommand(intnID)//调用IE隐藏命令,既调用InternetExplorer_Server的命令{IntPtrvHandle=((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Handle;vHandle=FindWindowEx(vHandle,IntPtr.Zero,"ShellEmbedding",null);vHandle=FindWindowEx(vHandle,IntPtr.Zero,"ShellDocObjectView",null);vHandle=FindWindowEx(vHandle,IntPtr.Zero,"InternetExplorer_Server",null);SendMessage(vHandle,WM_COMMAND,nID,(int)Handle);}//***********************************************////调用IE隐藏命令////(即调用ShellDocObjectView的命令)////***********************************************//privatevoidFindShellDocObjectViewCommand(intnID){IntPtrvHandle=((CTabpage)(this.tabControl1.SelectedTab)).webBrowser.Handle;vHandle=FindWindowEx(vHandle,IntPtr.Zero,"ShellEmbedding",null);//vHandle=FindWindowEx(vHandle,IntPtr.Zero,"InternetExplorer_Server",null);vHandle=FindWindowEx(vHandle,IntPtr.Zero,"ShellDocObjectView",null);SendMessage(vHandle,WM_COMMAND,nID,(int)Handle);}5.6编辑收藏夹功能类,代码如下://***********************************************////动态生成收藏夹////***********************************************//privatevoidShouCangMenuItem(){try{stringfavorfolder=Environment.GetFolderPath(Environment.SpecialFolder.Favorites);//获取系统收藏夹路径ListFiles(收藏夹DMenuItem,newDirectoryInfo(favorfolder));}catch(System.Exceptionex){throw(ex);}}//***********************************************////生成收藏夹的函数(递归)////***********************************************//publicvoidListFiles(ToolStripMenuItemtoolstripmenuitem,FileSystemInfoinfo){if(!info.Exists)return;DirectoryInfodir=infoasDirectoryInfo;//不是目录if(dir==null)return;FileSystemInfo[]files=dir.GetFileSystemInfos();SCJMenuItem[]ShouCangsMenuItem=newSCJMenuItem[files.Length];for(inti=0;i<files.Length;i++){FileInfofile=files[i]asFileInfo;//是文件if(file!=null){ShouCangsMenuItem[i]=newSCJMenuItem(file.Name,file.FullName);ShouCangsMenuItem[i].Click+=newEventHandler(ShouCangsMenuItem_Click);//把获得的URL赋值给菜单工具提示文本toolstripmenuitem.DropDownItems.Add(ShouCangsMenuItem[i]);}//对于子目录,进行递归调用else{DirectoryInfoDirect=files[i]asDirectoryInfo;ShouCangsMenuItem[i]=newSCJMenuItem(files[i].Name);//ShouCangsMenuItem[i].Click+=newEventHandler(ShouCangsMenuItem_Click);toolstripmenuitem.DropDownItems.Add(ShouCangsMenuItem[i]);ListFiles(ShouCangsMenuItem[i],newDirectoryInfo(Direct.FullName));//递归使用,生成子菜单}}}//***********************************************////生成收藏夹的进程////***********************************************//privatevoidThread_ShouCangMenuItem(){MethodInvokermi=newMethodInvoker(this.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论