Thứ Sáu, 5 tháng 2, 2016

[C#] Tạo 1 trình duyệt Web





Cái này chẳng có gì là ghê gớm, tất cả chỉ là kéo thả các công cụ có sẳn thôi, còn tạo 1 trình duyệt mới thì là 1 vấn đề khác :uong2:


Giờ bắt tay vào kéo thả nhé :haha:

Dĩ nhiên đầu tiên là tạo 1 form mới

trên Toolbox kéo Công cụ ToolStrip vào, tạo cho nó mấy cái button, 1 cái textbox để nhập url:khochiu:

À, kéo thêm cái webBrowser vào form, rồi chọn chế độ Dock in Parent Contener để khi mở rộng form nó còn đi theo chứ
Posted Image

Gán thêm mấy cái hình cho nó chuyên nghiệp :roi:
// mấy cái hình lười tìm lụm đại chưa resize nó xấu tệ :nod:

Posted Image

Code nhé

Đầu tiên, trong sự kiện click của các toolStripbutton

lần lượt gán các hàm sau


webBrowser1 biến của WebBrowser ta kéo vào form
Nút Back
Code:
 
webBrowser1.GoBack();

Nút Forward
Code:
 
webBrowser1.GoForward();


Nút Home

Code:
 
webBrowser1.GoHome();

Nút Stop

Code:
 
webBrowser1.Stop();

Nút Refresh

Code:
 
webBrowser1.Refresh();


Nút Go

Code:
 
webBrowser1.Navigate(toolStripTextBox1.Text);
//toolStripTextBox1 tên của textbox đễ gõ địa chỉ




Bây giờ vấn đề phát sinh là tôi ko nhấn nút Go mà gõ Enter thì làm sao để trình duyêt chạy

Vậy thì trong sự kiện KeyDown của toolStripTextBox làm cái hàm xử lý thôi :kiai:
Code:
 
if (e.KeyCode == Keys.Enter)
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}




Tiếp tục phát sinh vấn đề
Giờ urlweb có http:// thì nó mới chạy, bắt người ta gõ thì ngại quá

Thôi thì làm tạm bợ cái hàm kiểm tra để gán thêm chuỗi http:// là xong :uong:

Code:
 
private void CheckHTTP()
{
string _url = toolStripTextBox1.Text;
if (_url.Substring(0, 7) == "http://") //kiểm tra 7 kí tự đầu có phải là http:// ko
{
webBrowser1.Navigate(toolStripTextBox1.Text);
}
else
{
string _newurl = "http://" + _url;
webBrowser1.Navigate(_newurl.ToString());
toolStripTextBox1.Text= _newurl.ToString();
}
}


Vậy thì trên nút Go và sự kiện KeyDown sửa

webBrowser1.Navigate(toolStripTextBox1.Text);

thành

CheckHTTP(); là xong :robot:


Thành quả đây

Posted Image

làm thì làm được thế thôi, chứ kể ra còn vô số thứ kiểm tra, như nút Back, Forward, nếu trình duyệt chưa vào trang nào thì 2 nút này phải disable chứ nhỉ, rồi khi vào trang google, với DNS việt nam thì url nó phải chuyển thành Bạn phải
hoặc
mới có thể xem link
chứ, đằng này nó trơ ra Bạn phải
hoặc
mới có thể xem link
và index là trang google Việt Nam:haha:. Chuối hết cỡ :tatoi:


Bài viết tham khảo từ codecall, phần checkHTTP mình tự thiết kế nhá :leocot:

bấm Thank max rep nào :banh:[/QUOTE]

[/b][/color]
Toggle Thanks
Offline Profile Quote Post Goto Top
 
boy_popping
No Avatar

thank nhiệt liệt ^^
Toggle Thanks
Offline Profile Quote Post Goto Top
 
simTP.vn
No Avatar

Giờ mới mò đến cái bài này^^! cái này "như nút Back, Forward, nếu trình duyệt chưa vào trang nào thì 2 nút này phải disable chứ nhỉ" thì ta làm
public Form1()
{
//Cho ẩn Go Back, Forward, Refresh
tsbBack.Enabled = false;
tsbForward.Enabled = false;
tsbRefresh.Enabled = false;

//chèn icon
InitializeComponent();
toolStrip1.ImageList = imageList1;
tsbBack.Image=imageList1.Images[0];
tsbForward.Image = imageList1.Images[1];
tsbHome.Image = imageList1.Images[2];
tsbStop.Image = imageList1.Images[3];
tsbRefresh.Image = imageList1.Images[4];
tsbGo.Image = imageList1.Images[5];
}

còn chỗ bắt sự kiện GO và Enter thì thêm
private void tsbGo_Click(object sender, EventArgs e)
{
CheckHTTP();
tsbBack.Enabled = true;
tsbForward.Enabled = true;
tsbRefresh.Enabled = true;
}

private void tsbtxtDiaChi_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
CheckHTTP();
tsbBack.Enabled = true;
tsbForward.Enabled = true;
tsbRefresh.Enabled = true;
}
}

Cái này chắc chủ thớt cũng rõ rồi nhỉ? Nhưng cứ up lên cho ae nào cần tìm:D

0 nhận xét: