private void actionWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
string animate = string.Empty;
if (e.UserState != null)
{
animate = e.UserState.ToString();
}
string automatedString = animate + new string('.', _numberOfDots);
int lastLine = _statusControl.Lines.Length;
if (lastLine < 2)
{
_statusControl.InvokeIfRequired(s =>
{
_statusControl.Text = automatedString;
});
}
else
{
if (_statusControl.Lines[lastLine - 1].Contains(animate))
{
string trimmedText = _statusControl.Text.Remove(_statusControl.Text.LastIndexOf(animate, StringComparison.Ordinal));
_statusControl.InvokeIfRequired(s =>
{
_statusControl.Text = trimmedText + automatedString;
});
}
else
{
_statusControl.InvokeIfRequired(s =>
{
_statusControl.Text += Environment.NewLine + automatedString;
});
}
}
_numberOfDots = (_numberOfDots + 1) % (_maxDots + 1);
}