tristan202
October 1st, 2009, 06:12 AM
This is part of my code:
private void browse_button_Click(object sender, EventArgs e)
{
toolStripProgressBar1.Value = 0;
toolStripProgressBar1.Minimum = 0;
toolStripProgressBar1.Step = 1;
label_count.Text = "";
folderBrowserDialog.RootFolder = System.Environment.SpecialFolder.MyComputer;
folderBrowserDialog.ShowNewFolderButton = false;
toolStripStatusLabel1.Invalidate();
DialogResult result = folderBrowserDialog.ShowDialog();
if (result == DialogResult.OK)
{
toolStripStatusLabel1.Text = "Loading... Please wait";
toolStripStatusLabel1.Invalidate();
listbox.Items.Clear();
string foldername = folderBrowserDialog.SelectedPath;
selected_path.Text = foldername;
int count = DirCount(foldername);
toolStripProgressBar1.Maximum = count;
DirSearch(foldername);
}
else if (result == DialogResult.Cancel)
{
toolStripStatusLabel1.Text = "";
}
}
void DirSearch(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
DirSearch(d);
string name = d.Substring(d.LastIndexOf("\\") + 1);
{
if (name.ToLower().Contains("cd"))
{ }
else if (name.ToLower().Contains("artwork"))
{ }
else if (name.ToLower().Contains("disc"))
{ }
else if (name.ToLower().Contains("cover"))
{ }
else if (name.ToLower().Contains("label"))
{ }
else if (name.ToLower().Contains("disk"))
{ }
else
{
if (!Regex.IsMatch(name, numbers))
{
name = name.Replace("_", " ");
listbox.Items.Add(name);
toolStripProgressBar1.PerformStep();
label_count.Text = listbox.Items.Count.ToString();
label_count.Invalidate();
double percent = 100.0 * toolStripProgressBar1.Value/ toolStripProgressBar1.Maximum;
toolStripStatusLabel1.Text = ((int)percent).ToString();
toolStripStatusLabel1.Invalidate();
}
}
}
}
}
catch (System.Exception excpt)
{
MessageBox.Show(excpt.Message);
}
label_count.Text = listbox.Items.Count.ToString();
toolStripStatusLabel1.Text = "Done!";
}
int DirCount(string sDir)
{
int count = 0;
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
count += DirCount(d);
string name = d.Substring(d.LastIndexOf("\\") + 1);
{
if (name.ToLower().Contains("cd"))
{ }
else if (name.ToLower().Contains("artwork"))
{ }
else if (name.ToLower().Contains("disc"))
{ }
else if (name.ToLower().Contains("cover"))
{ }
else if (name.ToLower().Contains("label"))
{ }
else if (name.ToLower().Contains("disk"))
{ }
else
{
if (!Regex.IsMatch(name, numbers))
{
count++;
}
}
}
}
}
catch (System.Exception excpt)
{
MessageBox.Show(excpt.Message);
}
return count;
}
The problem is, that the toolStripStatusLabel1 nor the label_count don't get updated with the "Loading...Please wait", or the percentage counter during the search/count of the folders. First I had it without the Invalidate() switch, but was then suggested to add it, but that didn't help.
Any bright heads got an idea what might be wrong?
private void browse_button_Click(object sender, EventArgs e)
{
toolStripProgressBar1.Value = 0;
toolStripProgressBar1.Minimum = 0;
toolStripProgressBar1.Step = 1;
label_count.Text = "";
folderBrowserDialog.RootFolder = System.Environment.SpecialFolder.MyComputer;
folderBrowserDialog.ShowNewFolderButton = false;
toolStripStatusLabel1.Invalidate();
DialogResult result = folderBrowserDialog.ShowDialog();
if (result == DialogResult.OK)
{
toolStripStatusLabel1.Text = "Loading... Please wait";
toolStripStatusLabel1.Invalidate();
listbox.Items.Clear();
string foldername = folderBrowserDialog.SelectedPath;
selected_path.Text = foldername;
int count = DirCount(foldername);
toolStripProgressBar1.Maximum = count;
DirSearch(foldername);
}
else if (result == DialogResult.Cancel)
{
toolStripStatusLabel1.Text = "";
}
}
void DirSearch(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
DirSearch(d);
string name = d.Substring(d.LastIndexOf("\\") + 1);
{
if (name.ToLower().Contains("cd"))
{ }
else if (name.ToLower().Contains("artwork"))
{ }
else if (name.ToLower().Contains("disc"))
{ }
else if (name.ToLower().Contains("cover"))
{ }
else if (name.ToLower().Contains("label"))
{ }
else if (name.ToLower().Contains("disk"))
{ }
else
{
if (!Regex.IsMatch(name, numbers))
{
name = name.Replace("_", " ");
listbox.Items.Add(name);
toolStripProgressBar1.PerformStep();
label_count.Text = listbox.Items.Count.ToString();
label_count.Invalidate();
double percent = 100.0 * toolStripProgressBar1.Value/ toolStripProgressBar1.Maximum;
toolStripStatusLabel1.Text = ((int)percent).ToString();
toolStripStatusLabel1.Invalidate();
}
}
}
}
}
catch (System.Exception excpt)
{
MessageBox.Show(excpt.Message);
}
label_count.Text = listbox.Items.Count.ToString();
toolStripStatusLabel1.Text = "Done!";
}
int DirCount(string sDir)
{
int count = 0;
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
count += DirCount(d);
string name = d.Substring(d.LastIndexOf("\\") + 1);
{
if (name.ToLower().Contains("cd"))
{ }
else if (name.ToLower().Contains("artwork"))
{ }
else if (name.ToLower().Contains("disc"))
{ }
else if (name.ToLower().Contains("cover"))
{ }
else if (name.ToLower().Contains("label"))
{ }
else if (name.ToLower().Contains("disk"))
{ }
else
{
if (!Regex.IsMatch(name, numbers))
{
count++;
}
}
}
}
}
catch (System.Exception excpt)
{
MessageBox.Show(excpt.Message);
}
return count;
}
The problem is, that the toolStripStatusLabel1 nor the label_count don't get updated with the "Loading...Please wait", or the percentage counter during the search/count of the folders. First I had it without the Invalidate() switch, but was then suggested to add it, but that didn't help.
Any bright heads got an idea what might be wrong?