小白C#表單系列-01.簡易瀏覽器

來源:互聯網
上載者:User

標籤:blog   http   color   os   io   for   art   問題   

最近重傷,今天正好放假,就抽個空出C#第一集,開發完畢。。。 如果你看不到這篇文章,那過一天就可以看見了。
 軟體下載(.NET 4.0 架構)http://pan.baidu.com/s/1c03X7vM【源碼看下面】

一、設計圖紙:



二、程式碼分析 
1.後退鍵、 前進鍵、停止鍵、重新整理鍵:
這幾個功能本來我是準備用個數組來儲存,可以前進後退的,後來啃他內建方法的時候發現微軟提供了方法,也就偷個懶了
後退按鈕 this.webBrowser1.GoBack(); 
前進按鈕 this.webBrowser1.GoForward(); 停止按鈕 this.webBrowser1.Stop(); 
重新整理按鈕 this.webBrowser1.Refresh();

2.跳轉功能
因為經常用,所有就封裝了2個方法
 public void GetUrl()        {            url = TxtUrl.Text.Trim();//去除空格            if (url.Length > 0)//輸入不可為空            {                ReUrl(url);            }        }

public void ReUrl(string url)        {            try            {
                //去除空格後看看開頭有沒有http://之類的東西                if (url.Trim().StartsWith("http://") || url.Trim().StartsWith("ftp://") || url.Trim().StartsWith("https://"))                {                    webBrowser1.Url = new Uri(url);//網頁開始跳轉了                    TxtUrl.Text = url;//把地址欄的文本也改變掉                }                else//沒有的化就得幫你加                {                    url = "http://" + url;                    webBrowser1.Url = new Uri(url);                    TxtUrl.Text = url;                }            }            catch            {                MessageBox.Show("親,看看地址有沒有問題~~","逆天友情提醒");            }         } 3.按斷行符號鍵實現跳轉功能
這個用到了一個事件,也就是按鍵觸發的事件
if (e.KeyCode == Keys.Enter)  {                GetUrl(); //自訂跳轉方法   } 

4.電腦模式瀏覽和手機模式瀏覽
其實這個就是個思路,我也不知道別人是怎麼弄的,我是以www開頭的是電腦訪問,以wap開頭是是手機訪問
代碼也貼一下吧:
    ①電腦模式:
           string url = TxtUrl.Text.Trim().Replace("wap.", "www.");            ReUrl(url);//自訂的存取方法
     ②手機模式:
            string url = TxtUrl.Text.Trim().Replace("www.", "wap.");            ReUrl(url);
5.護眼的夜間模式
本來我是準備用反色來弄的,比如設定背景為黑,字型為白,後來發現webBrowser不怎麼支援,就猥瑣了一下
看代碼:
            this.webBrowser1.Document.BackColor = Color.Black;            this.webBrowser1.Document.ForeColor = Color.DarkCyan; (1.1會有更強大的夜間模式的)

6.源碼下載(右上方那個房子的表徵圖)
其實這個就是用的線程啟動來實現開啟你的預設瀏覽器來訪問我現在的這篇文章
貼下代碼:
System.Diagnostics.Process.Start("http://user.qzone.qq.com/1054186320/blog/1406614480");

7.擷取cookies(這次沒弄,就簡單調用微軟的方法)
貼下代碼:(1.1中會強化的) 
TxtUrl.Text = this.webBrowser1.Document.Cookie.ToString();     
你們自己添加一下,cookies為空白會出現異常的處理,try catch 一下
 
8.??讓網頁內容在軟體中開啟(本次項目中最另我蛋疼的東西)
當你跳轉到網站裡面的時候隨便點哪個超連結,他都會從ie開啟,我就想是不是預設是從新的表單開啟?後來去網上查了下,代碼貼下:
阻止在ie中開啟,在自身中開啟(webbrowser的NewWindow事件中)                
                e.Cancel = true;//阻止在ie中開啟                       //將所有的連結的目標,指向本表單            foreach (HtmlElement archor in this.webBrowser1.Document.Links)            {                archor.SetAttribute("target", "_self");            }            //將所有的FORM的提交目標,指向本表單            foreach (HtmlElement form in this.webBrowser1.Document.Forms)            {                form.SetAttribute("target", "_self");            } 
  
9.暫時沒了吧,具體看源碼吧,我源碼注釋寫的很詳細的,耐心點看是可以看懂的

~~~軟體中有一下缺憾,1.1版本中會美化完善的~~~
1.???地址欄自動填滿(美化)
2.???網頁
3.??更強大的cookies擷取功能
4.??收藏夾
5.??地址欄地址自動變換
6.??更強大的夜間模式
7.???屏蔽部分指令碼提示
等等  
三、源碼分享  http://pan.baidu.com/s/1bnGQOsn 四、視頻共用(下次錄吧,身體吃不消了) 

【以後視頻都是先簡單帶大家做個簡易版本,然後再講解下My Code。。。】
①主要原因:我一周就星期二和星期六有時間,還有一些其他的事情要做;
②加上這個美工什麼的太浪費時間了,比如這個軟體,我美工就花了2h,打代碼也不過就2h而已;
③逆天說過目前來說我的所有軟體和教程都是免費的,沒什麼人支援也就不想去浪費這個時間;其實熟悉我的人都知道我在學校期間就開放過很多小軟體,每個都是免費的,但一般都是1.0,1.1等版本的,很少有2.0版本的,也就個逆天簿是2.0版本,不是什麼,也就沒什麼人支援我,或者我感受不到,所以我開放的東西夠我自己用就夠了,也就不高興去開放新版本了。。。(有需求都可以和我說的,我現在幫人開放的軟體我都不收費的。。。)
④自學能力真的很重要, webBrowser我也是第一次接觸,然後花半天時間搗鼓,看vs內建的方法也差不多掌握了,掌握了之後就可以自己編些小東西了其實沒什麼的,加油親~~~

本期推薦:C#物件導向(很不錯的一套教程)                                 下一期:打造自己的二維碼產生器
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.