首页 > 代码库 > 小白C#窗体系列-01.简易浏览器

小白C#窗体系列-01.简易浏览器

最近重伤,今天正好放假,就抽个空出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
 
四、视频共享(下次录吧,身体吃不消了) 

【以后视频都是先简单带大家做个简易版本,然后再讲解下我的代码。。。】
①主要原因:我一周就星期二和星期六有时间,还有一些其他的事情要做;
②加上这个美工什么的太浪费时间了,比如这个软件,我美工就花了2h,打代码也不过就2h而已;
③逆天说过目前来说我的所有软件和教程都是免费的,没什么人支持也就不想去浪费这个时间;其实熟悉我的人都知道我在学校期间就开放过很多小软件,每个都是免费的,但一般都是1.0,1.1等版本的,很少有2.0版本的,也就个逆天簿是2.0版本,不是什么,也就没什么人支持我,或者我感受不到,所以我开放的东西够我自己用就够了,也就不高兴去开放新版本了。。。(有需求都可以和我说的,我现在帮人开放的软件我都不收费的。。。)
④自学能力真的很重要, webBrowser我也是第一次接触,然后花半天时间捣鼓,看vs自带的方法也差不多掌握了,掌握了之后就可以自己编些小东西了其实没什么的,加油亲~~~


本期推荐:C#面向对象(很不错的一套教程)                                 下一期:打造自己的二维码生成器