의 행의 수에 따라 C# 진행률 표시 줄 :나는 C#에서 다음과 같은 작업을 수행하고자하는 파일
- 특정 텍스트 파일에서 라인의 양을 읽어보십시오.
- 텍스트 파일의 줄 크기에 따라 각 줄을 읽고 진행률 막대를 업데이트하십시오.
private void Form1_Load(object sender, System.EventArgs e) { backgroundWorker1.RunWorkerAsync(); } private void bw_DoWork(object sender, DoWorkEventArgs e) { int lineCount = 0; int max = 100; float percent; using (var reader = File.OpenText(@"C:\file.txt")) { toolStripLabel1.Text = "Initializing..."; while (reader.ReadLine() != null) { lineCount++; } reader.Close(); for (int i = 0; i < lineCount; i++) { percent = (max/lineCount); toolStripLabel1.Text = i.ToString() + " - " + percent + "%"; bw.ReportProgress(Convert.ToInt32(percent)); percent = percent + percent; // Thread.Sleep(100); } } } private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e) { progressBar1.Value = e.ProgressPercentage; // progressBar1.Value = (int)(((decimal)currentPosition/(decimal)length) * (decimal)100); this.Text = e.ProgressPercentage.ToString(); }
사람이 제대로 계산하고 파일에서 읽고있는 무슨 라인에 따라 진행 표시 줄을 표시하는 방법에 대한 아이디어가 :
이것은 내가 지금까지 가지고 무엇인가? 사전에
감사합니다!
입니다. 그리고 그것은 아마도'(i/(float) lineCount) * max'이어야합니다. 또한,'toolStripLabel1.Text'를 다른 스레드에서 설정하면 잘 작동하지 않습니다! – Chris