void OnSearchTextChanged(object sender, EventArgs e)
        {
            bool validText = false;

            MediaBrowserPage selectedPage = GetSelectedPage();

            if (selectedPage != null)
            {
                _tt.SetSimpleToolTip(cmbSearch, selectedPage.GetSearchBoxTip());
                validText = selectedPage.PreValidateSearch(cmbSearch.Text);
            }

            btnSearch.Enabled   = validText;
            cmbSearch.BackColor = validText ? ThemeManager.WndValidColor : ThemeManager.ColorValidationFailed;
        }
        private void btnSearch_Click(object sender, EventArgs e)
        {
            MediaBrowserPage selectedPage = GetSelectedPage();

            if (selectedPage != null)
            {
                string search = cmbSearch.Text;

                if (selectedPage.PreValidateSearch(search))
                {
                    selectedPage.SearchCompleted -= SelectedPage_SearchCompleted;
                    selectedPage.SearchCompleted += SelectedPage_SearchCompleted;

                    _searchCancelled.Reset();

                    selectedPage.StartCancellableSearch(cmbSearch.Text, _searchCancelled);

                    ShowWaitDialog("Please wait for the search task to finish. You can press ESC to cancel the search.");
                }
            }
        }