private void changeOpponentsStrengthToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string newStrength = FrmInputBox.ShowDialog(
                "Enter new strength as number between 70 and 120:", "Enter new opponents strength...", this.weekend.Realism.OpponentStrength.ToString(),
                i =>
            {
                int p;
                if (int.TryParse(i, out p) == false)
                {
                    return(false);
                }
                if (p < 70 || p > 120)
                {
                    return(false);
                }
                return(true);
            }
                );
            int newVal = int.Parse(newStrength);

            if (this.weekend.Realism.OpponentStrength != newVal)
            {
                this.weekend.Realism.OpponentStrength = newVal;
                ctrWeekend.Init(this.weekend);
                TryUpdateSeasonForm();
            }
        }
        private void renameRaceToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string newName = FrmInputBox.ShowDialog(
                "Enter new race name:", "Rename race...", this.weekend.Name, i => String.IsNullOrWhiteSpace(i) == false);

            if (this.weekend.Name != newName)
            {
                this.weekend.Name = newName;
                ctrWeekend.Init(this.weekend);
                TryUpdateSeasonForm();
            }
        }
        private void changeRacedateToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string dateFormat  = "yyyy-MM-dd";
            string newStrength = FrmInputBox.ShowDialog(
                "Enter new date of race in format yyyy-mm-dd, e.g. 2001-01-01:", "Enter new race date...", this.weekend.DayOfRace.ToString(dateFormat),
                i =>
            {
                DateTime o;
                return
                (DateTime.TryParse(i, out o));
            }
                );
            DateTime newVal = DateTime.Parse(newStrength);

            if (this.weekend.DayOfRace != newVal)
            {
                this.weekend.DayOfRace = newVal;
                ctrWeekend.Init(this.weekend);
                TryUpdateSeasonForm();
            }
        }
        public static string ShowDialog(string question, string title, string defaultAnswer, Func <string, bool> inputValidator)
        {
            FrmInputBox f = new FrmInputBox();

            f.Text             = title;
            f.txtInput.Text    = defaultAnswer;
            f.lblQuestion.Text = question;


            f.ShowDialog();

            string ret = f.txtInput.Text;

            while (inputValidator != null && inputValidator(ret) == false)
            {
                MessageBox.Show("You entered invalid value. Press \"Ok\" and enter value again.");
                f.ShowDialog();
                ret = f.txtInput.Text;
            }

            return(ret);
        }