/// <summary> /// Event fired when the Next button is pushed /// </summary> private async void NextBtn_Click(object sender, EventArgs e) { // Get our next step switch (pageControl1.SelectedTab.Name) { case "tabPageSelect": // Make sure we are going to redirect something... if (!Bf2webCheckbox.Checked && !GpcmCheckbox.Checked) { MessageBox.Show( "Please select at least 1 redirect option", "Select an Option", MessageBoxButtons.OK, MessageBoxIcon.Information ); return; } // Show loading status so the user sees progress StatusPic.Visible = StatusText.Visible = true; NextBtn.Enabled = false; // Validate hostnames, and convert them to IPAddresses bool IsValid = await GetRedirectAddressesAsync(); if (IsValid) { Step = pageControl1.TabPages.IndexOf(tabPageRedirectType); } // Hide status icon and next StatusPic.Visible = StatusText.Visible = false; break; case "tabPageRedirectType": if (IcsRadio.Checked) { Step = pageControl1.TabPages.IndexOf(tabPageVerifyIcs); } else if (HostsRadio.Checked) { Step = pageControl1.TabPages.IndexOf(tabPageVerifyHosts); } else { Step = pageControl1.TabPages.IndexOf(tabPageDiagnostic); } // Set new redirect options Redirector.SetRedirectMode(SelectedMode); Redirector.StatsServerAddress = StatsServerAddress; Redirector.GamespyServerAddress = GamespyServerAddress; break; case "tabPageVerifyIcs": case "tabPageVerifyHosts": // Reset diag page Status1.Image = Status2.Image = Status4.Image = Status5.Image = null; Address1.Text = Address2.Text = Address4.Text = Address5.Text = "Queued"; // Get our next page index Step = pageControl1.TabPages.IndexOf(tabPageDiagnostic); break; case "tabPageDiagnostic": // All processing is done in the after select Step = pageControl1.TabPages.IndexOf(tabPageSuccess); break; case "tabPageError": case "tabPageSuccess": this.DialogResult = DialogResult.OK; this.Close(); break; } // Make sure we have a change before changing our index if (Step == pageControl1.SelectedIndex) { return; } // Set the new index pageControl1.SelectedIndex = Step; }