private void ChangeCourse(object sender, EventArgs e)
 {
     ThisCourse = (ICourseInfo)cmbCourseName.SelectedItem;
     //Do the holes
     for (int x = 0; x < cmbHoles.Items.Count; x++)
     {
         if ((int)cmbHoles.Items[x] == ThisCourse.NumberOfHoles)
         {
             cmbHoles.SelectedIndex = x;
             break;
         }
     }
     lblLength.Text = ThisCourse.Length.ToString();
     //Do the par
     for (int x = 0; x < cmbPar.Items.Count; x++)
     {
         if ((int)cmbPar.Items[x] == (int)ThisCourse.Par)
         {
             cmbPar.SelectedIndex = x;
             break;
         }
     }
     //Do the Slope/length
     SetupTeeList();
     txtSlope.Text = ThisCourse.Slope.ToString();
     AllowEdit(false);
 }
        private void SetupTeeList()
        {
            lstTees.View      = View.Details;
            lstTees.GridLines = true;
            lstTees.BeginUpdate();
            lstTees.Clear();
            lstTees.Columns.Add("Stats", 100, HorizontalAlignment.Left);
            for (int k = 0; k < (int)cmbHoles.SelectedItem; k++)
            {
                lstTees.Columns.Add((k + 1).ToString(), 50, HorizontalAlignment.Center);
            }

            ListViewItem Blue = lstTees.Items.Add("Blue Tee");

            Blue.ForeColor = Color.Blue;
            ListViewItem White = lstTees.Items.Add("White Tee");
            ListViewItem Red   = lstTees.Items.Add("Red Tee");

            Red.ForeColor = Color.Red;
            ListViewItem Par = lstTees.Items.Add("Par");

            if (cmbCourseName.SelectedItem != null)
            {
                ThisCourse = (ICourseInfo)cmbCourseName.SelectedItem;
                foreach (Tees tee in ThisCourse.Hole)
                {
                    Blue.SubItems.Add(tee.BlueDistance.ToString(), Color.Blue, Color.Linen, lstTees.Font);
                    White.SubItems.Add(tee.WhiteDistance.ToString(), Color.Black, Color.Linen, lstTees.Font);
                    Red.SubItems.Add(tee.RedDistance.ToString(), Color.Red, Color.Linen, lstTees.Font);
                    Par.SubItems.Add(tee.Par.ToString());
                }
            }
            lstTees.EndUpdate();
        }
        public void SaveCourse(ICourseInfo GolfCourse)
        {
            if (GolfCourses.Item(GolfCourse.Name) == null)
            {
                GolfCourses.Add(GolfCourse);
            }

            //Put some code in here to save to a database.
        }
        private void GetGolfCourses()
        {
            //Go out to the database and get the golf course info here
            ICourseInfo course = new ICourseInfo();

            course.NumberOfHoles = 9;
            course.Name          = "My Back Yard";
            course.Par           = CoursePar._35;
            course.Slope         = 127;

            Tees tee;

            for (int k = 0; k < course.Hole.Count; k++)
            {
                tee = (Tees)course.Hole[k];
                tee.BlueDistance  = 450;
                tee.WhiteDistance = 430;
                tee.RedDistance   = 400;
                tee.Par           = k < 5 ? 4 : 5;
                tee.HoleNumber    = k + 1;
            }

            IScoreCardInfo card = new IScoreCardInfo();

            card.PlayDate = DateTime.Now;

            IHoleDetailInfo detail;

            for (int k = 0; k < course.NumberOfHoles; k++)
            {
                detail                = new IHoleDetailInfo();
                detail.Hole           = k + 1;
                detail.TeeClub        = GolfClubs.Driver;
                detail.HitFairway     = true;
                detail.ScondClub      = GolfClubs.Nine_wood;
                detail.GoodSecondShot = true;
                detail.ShotsToGreen   = 2;
                detail.Putts          = 2;
                detail.TotalShots     = 4;
                detail.Par            = ((Tees)course.Hole[k]).Par;
                detail.TeeBox         = YardMarker.White;
                card.holes.Add(detail);
            }
            course.ScoreCards.Add(card);

            GolfCourses.Add(course);
        }
 // ----- add method ------
 public void Add(ICourseInfo GolfCourse)
 {
     mCol.Add(GolfCourse.Name, GolfCourse);
 }
        public HoleDetail(ref ICourseInfo ThisCourse, ref IHoleDetailInfo hole)
        {
            InitializeComponent();

            //Dont forget to initailize tab order and speedkeys, etc
            this.BackColor      = Color.LightGreen;
            cmdSave.BackColor   = Color.SandyBrown;
            cmdCancel.BackColor = Color.SandyBrown;

            mHole          = hole;
            lblCourse.Text = ThisCourse.Name;
            foreach (Tees tee in ThisCourse.Hole)
            {
                if (tee.HoleNumber == mHole.Hole)
                {
                    distance = tee;
                    break;
                }
            }

            lblHole.Text = "Hole: " + mHole.Hole.ToString();
            lblPar.Text  = "Par: " + mHole.Par.ToString();

            optBlue.CheckedChanged  += new EventHandler(this.YardClick);
            optWhite.CheckedChanged += new EventHandler(this.YardClick);
            optRed.CheckedChanged   += new EventHandler(this.YardClick);
            switch (hole.TeeBox)
            {
            case YardMarker.Blue:
                optBlue.Checked = true;
                TeeBox          = YardMarker.Blue;
                break;

            case YardMarker.Red:
                optRed.Checked = true;
                TeeBox         = YardMarker.Red;
                break;

            case YardMarker.White:
            default:
                optWhite.Checked = true;
                TeeBox           = YardMarker.White;
                break;
            }

            //This is how you enumerate an enumeration
            //Bet you didn't know you could do this.
            GolfClubs G = GolfClubs.One_iron;

            while (G <= GolfClubs.Putter)
            {
                cmbFirstClub.Items.Add(G);
                if (mHole.TeeClub == G)
                {
                    cmbFirstClub.SelectedIndex = cmbFirstClub.Items.Count - 1;
                }

                cmbSecondClub.Items.Add(G);
                if (mHole.ScondClub == G)
                {
                    cmbSecondClub.SelectedIndex = cmbSecondClub.Items.Count - 1;
                }

                G++;
            }

            cmdSave.DialogResult   = DialogResult.OK;
            cmdCancel.DialogResult = DialogResult.Cancel;
            cmdSave.Click         += new EventHandler(SaveHole);

            chkFairway.Checked       = hole.HitFairway;
            chkGoodHit.Checked       = hole.GoodSecondShot;
            txtShots2Green.MaxLength = 3;
            txtShots2Green.Text      = hole.ShotsToGreen.ToString();
            txtShots2Green.KeyPress += new KeyPressEventHandler(OnlyNumbers);
            txtPutts.MaxLength       = 3;
            txtPutts.Text            = hole.Putts.ToString();
            txtPutts.KeyPress       += new KeyPressEventHandler(OnlyNumbers);
            txtTotal.MaxLength       = 3;
            txtTotal.Text            = hole.TotalShots.ToString();
            txtTotal.KeyPress       += new KeyPressEventHandler(OnlyNumbers);

            //Consider adding a databinding or validation to the totals
            //text box so it automatically totals the shots2green and putts TextBoxes.
        }