網頁重新整理器,顧名思義,就是用來重新整理網頁用的,可以大大提高你的空間人氣,網路上面有名的網頁重新整理器有華宇網頁自動重新整理器,(http://hnny.skycn.com/down/hy2008b.zip),用過之後感覺還差不多,就是介面有些不好看,其實原理都很簡單,就是用定時器控制項定時執行事件,將網頁開啟或者重新整理而已,在此不多說,以免大俠們笑話,先就發張吧!
首先呢,按照上面圖片所示樣子添加好控制項,並按照一定的命名規則將控制項命名好,其實還有兩個隱藏的控制項,一個就是Timer控制項(用來定時出發事件),一個是ToolTip控制項(用來提示使用者相關資訊),布置好介面後,接下來就開始寫代碼啦!
首先呢,讓程式一載入地址欄就獲得焦點,記住,這裡可以設定地址欄的Tab屬性來控制,但是c#與VB有一個區別就是:不能在Load事件中讓某個控制項獲得焦點,而要寫在Form的Shown事件中。
private void Form1_Shown(object sender, EventArgs e)
{
cboxUrl.Focus();
}
為了保證程式的正確運行,我們還必須做一些檢測,例如檢測網址是否正確,時間間隔是否符合要求等等,防止程式中途出現意外退出,當然,你用try---catch語句也行。
//檢驗網址和時間間隔是否正確
private bool check()
{
if (cboxUrl.Text == "")
{
MessageBox.Show("請輸入要重新整理的網址", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
cboxUrl.Focus();
return false;
}
if (txtTime.Text == "" || Convert.ToSingle (txtTime.Text) <= 0)
{
MessageBox.Show("請輸入正確的時間間隔", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtTime.Text = "";
txtTime.Focus();
return false;
}
return true;
}
接下來呢,就是單擊開始按鈕的代碼咯,我這裡用了兩種形式,一種是重新整理形式,一種是轉到形式,我試過了,有些網頁要用重新整理形式才能增加訪問量,而有些要用轉到的形式。
private void btnOk_Click(object sender, EventArgs e)
{
try
{
if (check())
{
if (btnOk.Text == "開始重新整理")
{
string url = cboxUrl.Text.Trim();
webMain.Navigate(url);//載入網頁
//if (webMain.IsBusy == true)
//{
// gbWeb.Text = "正在載入網頁";
//}
//else
//{
// gbWeb.Text = webMain.Document.Title;
//}
timer1.Interval = Convert.ToInt32(Convert.ToSingle(txtTime.Text) * 1000);
timer1.Start();
btnOk.Text = "停止重新整理";
gbSet.Enabled = false;
gbModle.Enabled = false;
}
else
{
timer1.Stop();
btnOk.Text = "開始重新整理";
labNum.Text = "0";
gbSet.Enabled = true;
gbModle.Enabled = true;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
下面才是關鍵的Timer控制項的事件咯。
private void timer1_Tick(object sender, EventArgs e)
{
string url = cboxUrl.Text.Trim();
if (rbtnF5.Checked == true)
{
webMain.Refresh();//重新整理網頁
}
else
{
webMain.Navigate(url);//轉到網頁
}
labNum.Text = Convert.ToString(Convert.ToInt32(labNum.Text) + 1);
}
好啦!基本就到此結束啦,可是還能不能增加點什麼呢,可以的,譬如運行時我不想讓他顯示在工作列中的話,我們可以將它縮小的托盤啊。
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.ShowInTaskbar = false;
this.notifyIcon1.Visible = true;
}
}
那又怎樣還原呢,這還不簡單,雙擊事件嘛!
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
this.notifyIcon1.Visible = false;
}
OK,原始碼中還有一些其他修飾的,請下載
如果朋友們覺得此系列文章好的話,需要繼續寫下去的話,請多多留言鼓勵鼓勵哈!