public BackgroundExecutorWithStatus(TextBox control, string textToAnimate) { _statusControl = control; AnimateText = string.Empty; _maxDots = 4; AnimateText = textToAnimate; _statusControl.TextChanged += (sender, e) => { _statusControl.InvokeIfRequired(tb => { tb.Focus(); tb.SelectionStart = tb.Text.Length; tb.ScrollToCaret(); }); }; Log.WriteVerbose(new SourceInfo(), "Initializing Background Worker."); _actionWorker = new BackgroundExecutorBase(); _actionWorker.DoWork += actionWorker_DoWork; _actionWorker.ProgressChanged += actionWorker_ProgressChanged; _actionWorker.RunWorkerCompleted += actionWorker_RunWorkerCompleted; }