16.ListBox and StatusStrip
主要介绍ListBox and StatusStrip两个控件,实现本地显示URL。同时显示进度状态。
1.StatusStrip控件
本控件可以添加split button、processbar、text。而splitbutton又可以添加Menu、CombBox、Text等。
为split button添加单击事件,如果没有选择路径的话,提示输入。
split button代码如下:
private void toolStripSplitButton1_ButtonClick(object sender, EventArgs e)
{
if (toolStripTextBox1.Text.Trim().Length == 0)
{
MessageBox.Show("Please select the path that contains hyperlinks");
return;
}
string selectedDirectory = toolStripTextBox1.Text;
backgroundWorker1.RunWorkerAsync(selectedDirectory);
}
combbox代码如下:
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (toolStripComboBox1.Text)
{
case "My Documents":
toolStripTextBox1.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
break;
case"Desktop":
toolStripTextBox1.Text = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
break;
case"My Favorities":
toolStripTextBox1.Text = Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
break;
default:
toolStripTextBox1.Text = "";
break;
}
}
Menu代码:
private void toolStripMenuItem1_Click_1(object sender, EventArgs e)
{
folderBrowserDialog1.ShowDialog();
toolStripTextBox1.Text = folderBrowserDialog1.SelectedPath;
}
2.ListBox
显示文件或者其它列表。
3.涉及了backgroundWorker、folderBrowserDialog两个控件
backgroundWorker的WorkReportsProgress选择true。
事件添加代码:
rivate void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
string[] fileList = System.IO.Directory.GetFiles(e.Argument.ToString());
string statusText = String.Empty;
int counter = 0;
int progress = 0;
foreach (string currentFiles in fileList)
{
using (System.IO.StringReader sr = new System.IO.StringReader(currentFiles))
{
string line;
line = string.Empty;
while (line != null)
{
line = sr.ReadLine();
if (line.StartsWith("URL="))//确定一个字符串是否以传递的字符串开头。返回布尔值
{
string myValue = line.Substring(4);
try
{
HttpWebRequest mywebRequst = (HttpWebRequest)HttpWebRequest.Create(myValue);
HttpWebResponse myWebResponse = (HttpWebResponse)mywebRequst.GetResponse();
statusText = String.Format("{0}-{1}", myValue, myWebResponse.StatusDescription);
}
catch
{
statusText = String.Format("{0}-{1}", myValue, "404");
}
break;
}
}
}
counter++;
progress = (counter * 100) / fileList.Length;
backgroundWorker1.ReportProgress(progress, statusText);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
listBox1.Items.Add(e.UserState);
toolStripStatusLabel1.Text = e.UserState.ToString();
toolStripProgressBar1.Value = e.ProgressPercentage;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
toolStripStatusLabel1.Text = "Finish";
toolStripProgressBar1.Value = 0;
}
4.添加空间
添加命名空间
system.net
浙公网安备 33010602011771号