您的位置:首页 > 其它

16.ListBox and StatusStrip

2008-02-25 16:42 148 查看
由于这两个视频所用到的例子相同,所以就合并起来讲。

主要介绍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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: