版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程設計說明書題目:基于項目的C#實訓指導書——基于VC#的瀏覽器程序設計
畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設計(論文),是我個人在指導教師的指導下進行的研究工作及取得的成果。盡我所知,除文中特別加以標注和致謝的地方外,不包含其他人或組織已經發(fā)表或公布過的研究成果,也不包含我為獲得及其它教育機構的學位或學歷而使用過的材料。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了謝意。作者簽名:日期:指導教師簽名:日期:使用授權說明本人完全了解大學關于收集、保存、使用畢業(yè)設計(論文)的規(guī)定,即:按照學校要求提交畢業(yè)設計(論文)的印刷本和電子版本;學校有權保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學??梢圆捎糜坝?、縮印、數字化或其它復制手段保存論文;在不以贏利為目的前提下,學??梢怨颊撐牡牟糠只蛉績热?。作者簽名:日期:
學位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導師的指導下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的內容外,本論文不包含任何其他個人或集體已經發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法律后果由本人承擔。作者簽名: 日期:年月日學位論文版權使用授權書本學位論文作者完全了解學校有關保留、使用學位論文的規(guī)定,同意學校保留并向國家有關部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權大學可以將本學位論文的全部或部分內容編入有關數據庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。涉密論文按學校規(guī)定處理。作者簽名: 日期:年月日導師簽名:日期:年月日
注意事項1.設計(論文)的內容包括:1)封面(按教務處制定的標準封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300字左右)、關鍵詞4)外文摘要、關鍵詞5)目次頁(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結論7)參考文獻8)致謝9)附錄(對論文支持必要時)2.論文字數要求:理工類設計(論文)正文字數不少于1萬字(不包括圖紙、程序清單等),文科類論文正文字數不少于1.2萬字。3.附件包括:任務書、開題報告、外文譯文、譯文原文(復印件)。4.文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體及大小符合要求,無錯別字,不準請他人代寫2)工程設計類題目的圖紙,要求部分用尺規(guī)繪制,部分用計算機繪制,所有圖紙應符合國家技術標準規(guī)范。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準用徒手畫3)畢業(yè)論文須用A4單面打印,論文50頁以上的雙面打印4)圖表應繪制于無格子的頁面上5)軟件工程類課題應有程序清單,并提供電子文檔5.裝訂順序1)設計(論文)2)附件:按照任務書、開題報告、外文譯文、譯文原文(復印件)次序裝訂
指導教師評閱書指導教師評價:一、撰寫(設計)過程1、學生在論文(設計)過程中的治學態(tài)度、工作精神□優(yōu)□良□中□及格□不及格2、學生掌握專業(yè)知識、技能的扎實程度□優(yōu)□良□中□及格□不及格3、學生綜合運用所學知識和專業(yè)技能分析和解決問題的能力□優(yōu)□良□中□及格□不及格4、研究方法的科學性;技術線路的可行性;設計方案的合理性□優(yōu)□良□中□及格□不及格5、完成畢業(yè)論文(設計)期間的出勤情況□優(yōu)□良□中□及格□不及格二、論文(設計)質量1、論文(設計)的整體結構是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設計)任務(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設計說明書)所體現的整體水平□優(yōu)□良□中□及格□不及格建議成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內畫“√”)指導教師:(簽名)單位:(蓋章)年月日
評閱教師評閱書評閱教師評價:一、論文(設計)質量1、論文(設計)的整體結構是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設計)任務(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格二、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設計說明書)所體現的整體水平□優(yōu)□良□中□及格□不及格建議成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內畫“√”)評閱教師:(簽名)單位:(蓋章)年月日教研室(或答辯小組)及教學系意見教研室(或答辯小組)評價:一、答辯過程1、畢業(yè)論文(設計)的基本要點和見解的敘述情況□優(yōu)□良□中□及格□不及格2、對答辯問題的反應、理解、表達情況□優(yōu)□良□中□及格□不及格3、學生答辯過程中的精神狀態(tài)□優(yōu)□良□中□及格□不及格二、論文(設計)質量1、論文(設計)的整體結構是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設計)任務(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設計說明書)所體現的整體水平□優(yōu)□良□中□及格□不及格評定成績:□優(yōu)□良□中□及格□不及格教研室主任(或答辯小組組長):(簽名)年月日教學系意見:系主任:(簽名)年月日目錄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瀏覽器開發(fā)步驟 84.5.1熟悉VS2005以上平臺,建立項目 84.5.2瀏覽器界面設計 10菜單欄設計 10工具欄、用戶區(qū)和狀態(tài)欄設計 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#的網絡瀏覽器程序的編程方法,為今后的網絡協(xié)議編程和Web服務編程打下基礎。二實訓題目使用C#網絡編程語言,在VS2005版本以上平臺編程,基于VC#的瀏覽器程序設計。三實訓要求1.能夠熟練使用VS2005以上版本的編程平臺,熟悉平臺菜單欄、工具欄和各種窗口的使用,掌握不同項目類型創(chuàng)建步驟和使用以及平臺類庫的使用。2.熟練掌握C#語法與程序結構,能夠熟練創(chuàng)建程序功能所需的類、對象、接口等,并通過派生與繼承實現代碼重用,通過事件與消息實現對象之間的交互。3.熟練掌握權利瀏覽器程序所需的各種部件的使用,能夠正確使用菜單、工具欄和窗口控件完成瀏覽器程序界面設計,并能夠完成這些部件的相應響應函數代碼編寫,完成部件與函數之間的消息映射。4.按照軟件工程的要求的功能分析、程序設計、代碼編寫、程序調試、功能測試等步驟,完成實訓項目要求。5.提交“基于C#操作平臺下實現的的瀏覽器器程序設計”設計方案與程序源代碼。四實訓步驟4.1掌握瀏覽器工作原理瀏覽器工作原理如圖4-1所示。圖4-1瀏覽器工作原理(1)瀏覽器分析超鏈指向頁面的URL。(2)瀏覽器向DNS請求并解析的IP地址。(3)域名系統(tǒng)DNS解析出清華大學服務器的IP地址。(4)瀏覽器與服務器建立TCP連接(5)瀏覽器發(fā)出取文件命令:GET/chn/yxsz/index.htm。(6)服務器給出響應,把文件index.htm發(fā)送給瀏覽器。(7)TCP連接的釋放。(8)瀏覽器顯示文件index.htm中的所有文本信息4.2學習瀏覽器功能結構瀏覽器程序功能結構如圖4-2所示。圖4-2瀏覽器功能結構1)瀏覽器有一組客戶、一組解釋程序,以及管理這些客戶和解釋程序的控制程序。2)控制程序是其中的核心部件,它解釋鼠標的點擊和鍵盤的輸入,并調用有關的組件來執(zhí)行用戶指定的操作。3)例如,當用戶用鼠標點擊一個超鏈的起點時,控制程序就調用一個客戶從所需文檔所在的遠地服務器上取回該文檔,并調用解釋程序向用戶顯示該文檔4)HTML解釋程序是必不可少的,而其他的解釋程序則是可選的。5)解釋程序把HTML規(guī)格轉換為適合用戶顯示硬件的命令來處理版面的細節(jié)。6)許多瀏覽器還包含FTP客戶,用來獲取文件傳送服務。7)一些瀏覽器也包含電子郵件客戶,使瀏覽器能夠發(fā)送和接收電子郵件8)瀏覽器將它取回的每一個頁面副本都放入本地磁盤的緩存中。9)當用戶用鼠標點擊某個選項時,瀏覽器首先檢查磁盤的緩存。若緩存中保存了該項,瀏覽器就直接從緩存中得到該項副本而不必從網絡獲取,這樣就明顯地改善瀏覽器的運行特性。10)但緩存要占用磁盤大量的空間,而瀏覽器性能的改善只有在用戶再次查看緩存中的頁面時才有幫助。11)許多瀏覽器允許用戶調整緩存策略。4.3瀏覽器設計4.3.1瀏覽器功能設計瀏覽器功能設計主要確定設計好的瀏覽器需要具備哪些功能,以及這些功能是以什么方式進行實現,這個步驟相當于軟件設計中的“需求分析”,其中必須保證基本功能的具備,即瀏覽器必須能夠瀏覽Web頁面。4.3.2瀏覽器界面設計瀏覽器界面設計主要確定瀏覽器的頁面布局,設定瀏覽器窗口上設置哪些功能菜單項、設置哪些功能按鈕、設置哪些狀態(tài)欄,它們各自的位置如何、屬性如何、對應的變量如何等等。4.3.3瀏覽器代碼設計瀏覽器代碼設計主要是確定對上述的設計的功能在代碼上怎樣實現,包括選用的程序語言和編程平臺選擇、程序代碼的編寫、程序代碼的調試、程序功能的測試等等。4.4瀏覽器編寫程序設計平臺(1)VS2005版本以上編程操作平臺(2)WebBrowser類及其使用(3)一些瀏覽器程序的代碼分析4.5瀏覽器開發(fā)步驟4.5.1熟悉VS2005以上平臺,建立項目打開VS2005選擇“創(chuàng)建項目”,進入“新建項目”,如圖4-1所示。圖4-1“新建項目”對話框在“新建項目”對話框的項目類型窗口中選中“VisualC#”作為項目開發(fā)語言,在模板窗口中選中“Windows應用程序”作為項目開發(fā)模板,在“名稱”、“位置”編輯框中輸入自己設定的項目名字和項目存儲位置,本講義使用“CSharp瀏覽器”作為項目名稱,如圖4-2所示。圖4-2輸入新建項目的屬性完成輸入內容后,單擊“確定”按鈕,進入項目VC#開發(fā)窗口“Form.cs[設計]”,如圖4-3所示。圖4-3VC#開發(fā)窗口“Form.cs[設計]”4.5.2界面設計菜單欄設計,如圖所示。圖4-4設計“文件”菜單圖4-5設計“編輯”菜單圖4-6設計“查看”菜單圖4-7設計“收藏”菜單圖4-8設計“工具”菜單工具欄、用戶區(qū)和狀態(tài)欄設計,如圖所示圖4-9工具欄和狀態(tài)欄功能代碼編輯雙擊“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;//鏈接狀態(tài)按鈕單擊次數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編輯菜單欄功能,代碼如下://***********************************************////打開鏈接狀態(tài)////***********************************************//privatevoid打開連接狀態(tài)_Click(objectsender,EventArgse){richTextBox1.Visible=true;panel3.Visible=true;}//***********************************************////清除鏈接狀態(tài)////***********************************************//privatevoid清?除yToolStripMenuItem_Click(objectsender,EventArgse){richTextBox2.Clear();}//***********************************************////關閉鏈接狀態(tài)欄////***********************************************//privatevoid關閉連接狀態(tài)_Click(objectsender,EventArgse){richTextBox1.Visible=false;panel3.Visible=false;richTextBox1.Clear();}//***********************************************////清除鏈接狀態(tài)欄(快捷菜單)////***********************************************//privatevoid清除連接狀態(tài)_Click(objectsender,EventArgse){richTextBox1.Clear();}//***********************************************////關閉鏈接狀態(tài)欄(快捷菜單)////***********************************************//privatevoid關閉鏈接狀態(tài)欄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退a?出?XToolStripMenuItem_Click(objectsender,EventArgse){Application.Exit();}//***********************************************////查看連接狀態(tài)(菜單欄)////***********************************************//privatevoid查看連接狀態(tài)ToolStripMenuItem_Click(objectsender,EventArgse){richTextBox1.Visible=true;panel3.Visible=true;}//***********************************************////清空連接狀態(tài)(菜單欄)////***********************************************//privatevoid清空連接狀態(tài)信息ToolStripMenuItem_Click(objectsender,EventArgse){richTextBox1.Clear();}//***********************************************////關閉連接狀態(tài)(菜單欄)////***********************************************//privatevoid關閉連接狀態(tài)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;}}//***********************************************////狀態(tài)欄(菜單欄)////***********************************************//privatevoid狀態(tài)欄ToolStripMenuItem_Click(objectsender,EventArgse){if(狀態(tài)欄ToolStripMenuItem.Checked==false){statusStrip1.Visible=true;狀態(tài)欄ToolStripMenuItem.Checked=true;}else{statusStrip1.Visible=false;狀態(tài)欄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編輯收藏夾功能類,代碼如下://***********************************************////動態(tài)生成收藏夾////***********************************************//privatevoidShouCangMenuItem(){try{stringfavorfolder=Environment.GetFolderPath(Environment.SpecialFolder.Favorites);//獲取系統(tǒng)收藏夾路徑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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)形象設計委托代理協(xié)議
- 漁業(yè)資源捕撈養(yǎng)殖合同
- 寵物服務行業(yè)寄養(yǎng)期間意外傷害協(xié)議
- 農產品采購供應合同及免責條款
- 電子商務網站建設及運營合作協(xié)議
- 中國工商銀行借款合同
- 生物醫(yī)藥領域創(chuàng)新項目投資合同
- 傳統(tǒng)制造業(yè)轉型產業(yè)園區(qū)投資建設戰(zhàn)略合作合同協(xié)議書范文
- 建筑物沉降觀測技術服務合同
- 機場港口航運綜合服務總承包協(xié)議
- 提優(yōu)精練08-2023-2024學年九年級英語上學期完形填空與閱讀理解提優(yōu)精練(原卷版)
- DB4511T 0002-2023 瓶裝液化石油氣充裝、配送安全管理規(guī)范
- 小學英語時態(tài)練習大全(附答案)-小學英語時態(tài)專項訓練及答案
- GA 844-2018防砸透明材料
- 化學元素周期表記憶與讀音 元素周期表口訣順口溜
- 非人力資源經理的人力資源管理培訓(新版)課件
- 鉬氧化物還原過程中的物相轉變規(guī)律及其動力學機理研究
- (完整word)2019注冊消防工程師繼續(xù)教育三科試習題及答案
- 《調試件現場管理制度》
- 社區(qū)治理現代化課件
- 代持房屋協(xié)議書
評論
0/150
提交評論