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
posted on 2008-02-25 16:42  爱你的人  阅读(516)  评论(0)    收藏  举报