// This sample shows the Entry form functionality of the Racetracker

// race management application. It is written in C++.NET

// with data stored in an XML file. (It still has a few bugs.)

 

#pragma once

#using <System.xml.dll>

#using <mscorlib.dll>

 

 

namespace RacetrackerCPP

{

      using namespace System;

      using namespace System::ComponentModel;

      using namespace System::Collections;

      using namespace System::Windows::Forms;

      using namespace System::Data;

      using namespace System::Drawing;

      using namespace System::IO;

      using namespace System::Xml;

 

      /// <summary>

      /// Summary for Form1

      ///

      /// WARNING: If you change the name of this class, you will need to change the

      ///          'Resource File Name' property for the managed resource compiler tool

      ///          associated with all .resx files this class depends on.  Otherwise,

      ///          the designers will not be able to interact properly with localized

      ///          resources associated with this form.

      /// </summary>

      public __gc class Form1 : public System::Windows::Forms::Form

      {    

      public:

            Form1(void)

            {

                  InitializeComponent();

 

                  // Populate the Class combo box.

                  DataSet* dsRunClasses = new DataSet();

                  String* path = Directory::GetCurrentDirectory();

 

                  dsRunClasses->ReadXml(String::Concat(path, "\\_ClassRun.xml"));

                  cboClass->DataSource = dsRunClasses;

                  cboClass->DisplayMember = "_ClassRun.Class";

                  cboClass->ValueMember = "_ClassRun.Class";

 

                  // Bind the controls to the Entry table fields.

                  dsEntries->ReadXml(String::Concat(path, "\\Entry.xml"));

                  txtFName->DataBindings->Add("Text", dsEntries, "Entry.FirstName");

                  txtLName->DataBindings->Add("Text", dsEntries, "Entry.LastName");

 

                  txtAddress->DataBindings->Add("Text", dsEntries, "Entry.Address");

                  txtCity->DataBindings->Add("Text", dsEntries, "Entry.City");

                  txtState->DataBindings->Add("Text", dsEntries, "Entry.State");

                  txtZip->DataBindings->Add("Text", dsEntries, "Entry.Zip");

                  txtPhone->DataBindings->Add("Text", dsEntries, "Entry.Phone");

                  txtEmail->DataBindings->Add("Text", dsEntries, "Entry.Email");

                  txtBirthdate->DataBindings->Add("Text", dsEntries, "Entry.Birthdate");

                  cboGender->DataBindings->Add("Text", dsEntries, "Entry.Gender");

                  cboClass->DataBindings->Add("Text", dsEntries, "Entry.Class");

                  txtBibNumber->DataBindings->Add("Text", dsEntries, "Entry.BibNum");

                  txtID->DataBindings->Add("Text", dsEntries, "Entry.RaceKey");

 

                  //bmb = this->BindingContext->Item[dsEntries, S"Entry"];

                  //bmb->onPositionChangedHandler += new EventHandler(BindingManagerBase::onPositionChangedHandler);

                  //bmb->Position = 0;

 

                  int intPosition = this->BindingContext->get_Item(dsEntries, S"Entry")->Position + 1;

                  int intCount = this->BindingContext->get_Item(dsEntries, S"Entry")->Count;

 

                  lblPosition->Text = String::Format(S"{0} of {1}", __box(intPosition), __box(intCount));

 

            }

 

      protected:

            void Dispose(Boolean disposing)

            {

                  if (disposing && components)

                  {

                        components->Dispose();

                  }

                  __super::Dispose(disposing);

            }

      private: System::Windows::Forms::TabControl *  tabControl1;

      private: System::Windows::Forms::TabPage *  tabPage1;

      private: System::Windows::Forms::TextBox *  txtID;

      private: System::Windows::Forms::Label *  label13;

      private: System::Windows::Forms::Button *  btnSave;

      private: System::Windows::Forms::Button *  btnAdd;

      private: System::Windows::Forms::Button *  button1;

      private: System::Windows::Forms::Label *  lblPosition;

      private: System::Windows::Forms::Button *  btnLast;

      private: System::Windows::Forms::Button *  btnNext;

      private: System::Windows::Forms::Button *  btnPrev;

      private: System::Windows::Forms::Button *  btnFirst;

      private: System::Windows::Forms::Label *  label11;

      private: System::Windows::Forms::ComboBox *  cboClass;

      private: System::Windows::Forms::Label *  label12;

      private: System::Windows::Forms::ComboBox *  cboGender;

      private: System::Windows::Forms::TextBox *  txtZip;

      private: System::Windows::Forms::TextBox *  txtEmail;

      private: System::Windows::Forms::TextBox *  txtState;

      private: System::Windows::Forms::TextBox *  txtLName;

      private: System::Windows::Forms::TextBox *  txtBibNumber;

      private: System::Windows::Forms::TextBox *  txtBirthdate;

      private: System::Windows::Forms::TextBox *  txtPhone;

      private: System::Windows::Forms::TextBox *  txtCity;

      private: System::Windows::Forms::TextBox *  txtAddress;

      private: System::Windows::Forms::TextBox *  txtFName;

      private: System::Windows::Forms::Label *  label10;

      private: System::Windows::Forms::Label *  label9;

      private: System::Windows::Forms::Label *  label8;

      private: System::Windows::Forms::Label *  label7;

      private: System::Windows::Forms::Label *  label6;

      private: System::Windows::Forms::Label *  label5;

      private: System::Windows::Forms::Label *  label4;

      private: System::Windows::Forms::Label *  label3;

      private: System::Windows::Forms::Label *  label2;

      private: System::Windows::Forms::Label *  label1;

      private: System::Windows::Forms::TabPage *  tabPage2;

      private: System::Windows::Forms::TabPage *  tabPage3;

      private: System::Windows::Forms::TabPage *  tabPage4;

 

      static DataSet * dsEntries = new DataSet();

      //static BindingManagerBase * bmb;

      static Boolean  booNewRow = false;

 

      private:

            /// <summary>

            /// Required designer variable.

            /// </summary>

            System::ComponentModel::Container * components;

 

            /// <summary>

            /// Required method for Designer support - do not modify

            /// the contents of this method with the code editor.

            /// </summary>

            void InitializeComponent(void)

            {

                  this->tabControl1 = new System::Windows::Forms::TabControl();

                  this->tabPage1 = new System::Windows::Forms::TabPage();

                  this->txtID = new System::Windows::Forms::TextBox();

                  this->label13 = new System::Windows::Forms::Label();

                  this->btnSave = new System::Windows::Forms::Button();

                  this->btnAdd = new System::Windows::Forms::Button();

                  this->button1 = new System::Windows::Forms::Button();

                  this->lblPosition = new System::Windows::Forms::Label();

                  this->btnLast = new System::Windows::Forms::Button();

                  this->btnNext = new System::Windows::Forms::Button();

                  this->btnPrev = new System::Windows::Forms::Button();

                  this->btnFirst = new System::Windows::Forms::Button();

                  this->label11 = new System::Windows::Forms::Label();

                  this->cboClass = new System::Windows::Forms::ComboBox();

                  this->label12 = new System::Windows::Forms::Label();

                  this->cboGender = new System::Windows::Forms::ComboBox();

                  this->txtZip = new System::Windows::Forms::TextBox();

                  this->txtEmail = new System::Windows::Forms::TextBox();

                  this->txtState = new System::Windows::Forms::TextBox();

                  this->txtLName = new System::Windows::Forms::TextBox();

                  this->txtBibNumber = new System::Windows::Forms::TextBox();

                  this->txtBirthdate = new System::Windows::Forms::TextBox();

                  this->txtPhone = new System::Windows::Forms::TextBox();

                  this->txtCity = new System::Windows::Forms::TextBox();

                  this->txtAddress = new System::Windows::Forms::TextBox();

                  this->txtFName = new System::Windows::Forms::TextBox();

                  this->label10 = new System::Windows::Forms::Label();

                  this->label9 = new System::Windows::Forms::Label();

                  this->label8 = new System::Windows::Forms::Label();

                  this->label7 = new System::Windows::Forms::Label();

                  this->label6 = new System::Windows::Forms::Label();

                  this->label5 = new System::Windows::Forms::Label();

                  this->label4 = new System::Windows::Forms::Label();

                  this->label3 = new System::Windows::Forms::Label();

                  this->label2 = new System::Windows::Forms::Label();

                  this->label1 = new System::Windows::Forms::Label();

                  this->tabPage2 = new System::Windows::Forms::TabPage();

                  this->tabPage3 = new System::Windows::Forms::TabPage();

                  this->tabPage4 = new System::Windows::Forms::TabPage();

                  this->tabControl1->SuspendLayout();

                  this->tabPage1->SuspendLayout();

                  this->SuspendLayout();

                  //

                  // tabControl1

                  //

                  this->tabControl1->Controls->Add(this->tabPage1);

                  this->tabControl1->Controls->Add(this->tabPage2);

                  this->tabControl1->Controls->Add(this->tabPage3);

                  this->tabControl1->Controls->Add(this->tabPage4);

                  this->tabControl1->Location = System::Drawing::Point(8, 5);

                  this->tabControl1->Name = S"tabControl1";

                  this->tabControl1->SelectedIndex = 0;

                  this->tabControl1->Size = System::Drawing::Size(488, 227);

                  this->tabControl1->TabIndex = 1;

                  //

                  // tabPage1

                  //

                  this->tabPage1->Controls->Add(this->txtID);

                  this->tabPage1->Controls->Add(this->label13);

                  this->tabPage1->Controls->Add(this->btnSave);

                  this->tabPage1->Controls->Add(this->btnAdd);

                  this->tabPage1->Controls->Add(this->button1);

                  this->tabPage1->Controls->Add(this->lblPosition);

                  this->tabPage1->Controls->Add(this->btnLast);

                  this->tabPage1->Controls->Add(this->btnNext);

                  this->tabPage1->Controls->Add(this->btnPrev);

                  this->tabPage1->Controls->Add(this->btnFirst);

                  this->tabPage1->Controls->Add(this->label11);

                  this->tabPage1->Controls->Add(this->cboClass);

                  this->tabPage1->Controls->Add(this->label12);

                  this->tabPage1->Controls->Add(this->cboGender);

                  this->tabPage1->Controls->Add(this->txtZip);

                  this->tabPage1->Controls->Add(this->txtEmail);

                  this->tabPage1->Controls->Add(this->txtState);

                  this->tabPage1->Controls->Add(this->txtLName);

                  this->tabPage1->Controls->Add(this->txtBibNumber);

                  this->tabPage1->Controls->Add(this->txtBirthdate);

                  this->tabPage1->Controls->Add(this->txtPhone);

                  this->tabPage1->Controls->Add(this->txtCity);

                  this->tabPage1->Controls->Add(this->txtAddress);

                  this->tabPage1->Controls->Add(this->txtFName);

                  this->tabPage1->Controls->Add(this->label10);

                  this->tabPage1->Controls->Add(this->label9);

                  this->tabPage1->Controls->Add(this->label8);

                  this->tabPage1->Controls->Add(this->label7);

                  this->tabPage1->Controls->Add(this->label6);

                  this->tabPage1->Controls->Add(this->label5);

                  this->tabPage1->Controls->Add(this->label4);

                  this->tabPage1->Controls->Add(this->label3);

                  this->tabPage1->Controls->Add(this->label2);

                  this->tabPage1->Controls->Add(this->label1);

                  this->tabPage1->Location = System::Drawing::Point(4, 22);

                  this->tabPage1->Name = S"tabPage1";

                  this->tabPage1->Size = System::Drawing::Size(480, 201);

                  this->tabPage1->TabIndex = 3;

                  this->tabPage1->Text = S"Enter Racers";

                  //

                  // txtID

                  //

                  this->txtID->BackColor = System::Drawing::SystemColors::Control;

                  this->txtID->BorderStyle = System::Windows::Forms::BorderStyle::None;

                  this->txtID->Enabled = false;

                  this->txtID->Font = new System::Drawing::Font(S"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->txtID->Location = System::Drawing::Point(408, 136);

                  this->txtID->Name = S"txtID";

                  this->txtID->Size = System::Drawing::Size(48, 13);

                  this->txtID->TabIndex = 63;

                  this->txtID->Text = S"";

                  this->txtID->TextAlign = System::Windows::Forms::HorizontalAlignment::Center;

                  //

                  // label13

                  //

                  this->label13->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label13->Location = System::Drawing::Point(376, 136);

                  this->label13->Name = S"label13";

                  this->label13->Size = System::Drawing::Size(32, 23);

                  this->label13->TabIndex = 62;

                  this->label13->Text = S"ID:";

                  this->label13->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // btnSave

                  //

                  this->btnSave->Font = new System::Drawing::Font(S"Comic Sans MS", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->btnSave->Location = System::Drawing::Point(408, 160);

                  this->btnSave->Name = S"btnSave";

                  this->btnSave->Size = System::Drawing::Size(56, 24);

                  this->btnSave->TabIndex = 61;

                  this->btnSave->Text = S"Save";

                  this->btnSave->Click += new System::EventHandler(this, btnSave_Click);

                  //

                  // btnAdd

                  //

                  this->btnAdd->Font = new System::Drawing::Font(S"Comic Sans MS", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->btnAdd->Location = System::Drawing::Point(352, 160);

                  this->btnAdd->Name = S"btnAdd";

                  this->btnAdd->Size = System::Drawing::Size(56, 24);

                  this->btnAdd->TabIndex = 60;

                  this->btnAdd->Text = S"Add";

                  this->btnAdd->Click += new System::EventHandler(this, btnAdd_Click);

                  //

                  // button1

                  //

                  this->button1->Font = new System::Drawing::Font(S"Comic Sans MS", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->button1->Location = System::Drawing::Point(296, 160);

                  this->button1->Name = S"button1";

                  this->button1->Size = System::Drawing::Size(56, 24);

                  this->button1->TabIndex = 59;

                  this->button1->Text = S"Delete";

                  this->button1->Click += new System::EventHandler(this, button1_Click);

                  //

                  // lblPosition

                  //

                  this->lblPosition->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D;

                  this->lblPosition->Location = System::Drawing::Point(160, 160);

                  this->lblPosition->Name = S"lblPosition";

                  this->lblPosition->Size = System::Drawing::Size(80, 23);

                  this->lblPosition->TabIndex = 58;

                  this->lblPosition->TextAlign = System::Drawing::ContentAlignment::MiddleCenter;

                  //

                  // btnLast

                  //

                  this->btnLast->Font = new System::Drawing::Font(S"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->btnLast->Location = System::Drawing::Point(264, 160);

                  this->btnLast->Name = S"btnLast";

                  this->btnLast->Size = System::Drawing::Size(24, 24);

                  this->btnLast->TabIndex = 57;

                  this->btnLast->Text = S">|";

                  this->btnLast->Click += new System::EventHandler(this, btnLast_Click);

                  //

                  // btnNext

                  //

                  this->btnNext->Font = new System::Drawing::Font(S"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->btnNext->Location = System::Drawing::Point(240, 160);

                  this->btnNext->Name = S"btnNext";

                  this->btnNext->Size = System::Drawing::Size(24, 24);

                  this->btnNext->TabIndex = 56;

                  this->btnNext->Text = S">";

                  this->btnNext->Click += new System::EventHandler(this, btnNext_Click);

                  //

                  // btnPrev

                  //

                  this->btnPrev->Font = new System::Drawing::Font(S"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->btnPrev->Location = System::Drawing::Point(136, 160);

                  this->btnPrev->Name = S"btnPrev";

                  this->btnPrev->Size = System::Drawing::Size(24, 24);

                  this->btnPrev->TabIndex = 55;

                  this->btnPrev->Text = S"<";

                  this->btnPrev->Click += new System::EventHandler(this, btnPrev_Click);

                  //

                  // btnFirst

                  //

                  this->btnFirst->Font = new System::Drawing::Font(S"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->btnFirst->Location = System::Drawing::Point(112, 160);

                  this->btnFirst->Name = S"btnFirst";

                  this->btnFirst->Size = System::Drawing::Size(24, 24);

                  this->btnFirst->TabIndex = 54;

                  this->btnFirst->Text = S"|<";

                  this->btnFirst->Click += new System::EventHandler(this, btnFirst_Click);

                  //

                  // label11

                  //

                  this->label11->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label11->Location = System::Drawing::Point(304, 112);

                  this->label11->Name = S"label11";

                  this->label11->Size = System::Drawing::Size(40, 23);

                  this->label11->TabIndex = 53;

                  this->label11->Text = S"Class:";

                  this->label11->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // cboClass

                  //

                  this->cboClass->ItemHeight = 13;

                  this->cboClass->Location = System::Drawing::Point(344, 112);

                  this->cboClass->Name = S"cboClass";

                  this->cboClass->Size = System::Drawing::Size(120, 21);

                  this->cboClass->TabIndex = 52;

                  //

                  // label12

                  //

                  this->label12->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label12->Location = System::Drawing::Point(184, 112);

                  this->label12->Name = S"label12";

                  this->label12->Size = System::Drawing::Size(58, 23);

                  this->label12->TabIndex = 51;

                  this->label12->Text = S"Gender:";

                  this->label12->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // cboGender

                  //

                  this->cboGender->ItemHeight = 13;

                  this->cboGender->Location = System::Drawing::Point(240, 112);

                  this->cboGender->Name = S"cboGender";

                  this->cboGender->Size = System::Drawing::Size(64, 21);

                  this->cboGender->TabIndex = 50;

                  //

                  // txtZip

                  //

                  this->txtZip->Location = System::Drawing::Point(368, 64);

                  this->txtZip->Name = S"txtZip";

                  this->txtZip->Size = System::Drawing::Size(96, 20);

                  this->txtZip->TabIndex = 49;

                  this->txtZip->Text = S"";

                  //

                  // txtEmail

                  //

                  this->txtEmail->Location = System::Drawing::Point(248, 88);

                  this->txtEmail->Name = S"txtEmail";

                  this->txtEmail->Size = System::Drawing::Size(216, 20);

                  this->txtEmail->TabIndex = 47;

                  this->txtEmail->Text = S"";

                  //

                  // txtState

                  //

                  this->txtState->Location = System::Drawing::Point(288, 64);

                  this->txtState->Name = S"txtState";

                  this->txtState->Size = System::Drawing::Size(40, 20);

                  this->txtState->TabIndex = 45;

                  this->txtState->Text = S"";

                  //

                  // txtLName

                  //

                  this->txtLName->Location = System::Drawing::Point(312, 16);

                  this->txtLName->Name = S"txtLName";

                  this->txtLName->Size = System::Drawing::Size(152, 20);

                  this->txtLName->TabIndex = 43;

                  this->txtLName->Text = S"";

                  //

                  // txtBibNumber

                  //

                  this->txtBibNumber->Location = System::Drawing::Point(112, 136);

                  this->txtBibNumber->Name = S"txtBibNumber";

                  this->txtBibNumber->Size = System::Drawing::Size(48, 20);

                  this->txtBibNumber->TabIndex = 41;

                  this->txtBibNumber->Text = S"";

                  //

                  // txtBirthdate

                  //

                  this->txtBirthdate->Location = System::Drawing::Point(112, 112);

                  this->txtBirthdate->Name = S"txtBirthdate";

                  this->txtBirthdate->Size = System::Drawing::Size(80, 20);

                  this->txtBirthdate->TabIndex = 39;

                  this->txtBirthdate->Text = S"";

                  //

                  // txtPhone

                  //

                  this->txtPhone->Location = System::Drawing::Point(112, 88);

                  this->txtPhone->Name = S"txtPhone";

                  this->txtPhone->Size = System::Drawing::Size(80, 20);

                  this->txtPhone->TabIndex = 37;

                  this->txtPhone->Text = S"";

                  //

                  // txtCity

                  //

                  this->txtCity->Location = System::Drawing::Point(112, 64);

                  this->txtCity->Name = S"txtCity";

                  this->txtCity->Size = System::Drawing::Size(128, 20);

                  this->txtCity->TabIndex = 35;

                  this->txtCity->Text = S"";

                  //

                  // txtAddress

                  //

                  this->txtAddress->Location = System::Drawing::Point(112, 40);

                  this->txtAddress->Name = S"txtAddress";

                  this->txtAddress->Size = System::Drawing::Size(352, 20);

                  this->txtAddress->TabIndex = 33;

                  this->txtAddress->Text = S"";

                  //

                  // txtFName

                  //

                  this->txtFName->Location = System::Drawing::Point(112, 16);

                  this->txtFName->Name = S"txtFName";

                  this->txtFName->Size = System::Drawing::Size(112, 20);

                  this->txtFName->TabIndex = 31;

                  this->txtFName->Text = S"";

                  //

                  // label10

                  //

                  this->label10->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label10->Location = System::Drawing::Point(336, 64);

                  this->label10->Name = S"label10";

                  this->label10->Size = System::Drawing::Size(32, 23);

                  this->label10->TabIndex = 48;

                  this->label10->Text = S"Zip:";

                  this->label10->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label9

                  //

                  this->label9->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label9->Location = System::Drawing::Point(200, 88);

                  this->label9->Name = S"label9";

                  this->label9->Size = System::Drawing::Size(40, 23);

                  this->label9->TabIndex = 46;

                  this->label9->Text = S"Email:";

                  this->label9->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label8

                  //

                  this->label8->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label8->Location = System::Drawing::Point(240, 64);

                  this->label8->Name = S"label8";

                  this->label8->Size = System::Drawing::Size(48, 23);

                  this->label8->TabIndex = 44;

                  this->label8->Text = S"State:";

                  this->label8->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label7

                  //

                  this->label7->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label7->Location = System::Drawing::Point(232, 16);

                  this->label7->Name = S"label7";

                  this->label7->Size = System::Drawing::Size(80, 23);

                  this->label7->TabIndex = 42;

                  this->label7->Text = S"Last Name:";

                  this->label7->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label6

                  //

                  this->label6->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label6->Location = System::Drawing::Point(8, 136);

                  this->label6->Name = S"label6";

                  this->label6->TabIndex = 40;

                  this->label6->Text = S"Bib Number:";

                  this->label6->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label5

                  //

                  this->label5->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label5->Location = System::Drawing::Point(8, 112);

                  this->label5->Name = S"label5";

                  this->label5->TabIndex = 38;

                  this->label5->Text = S"Birthdate:";

                  this->label5->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label4

                  //

                  this->label4->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label4->Location = System::Drawing::Point(8, 88);

                  this->label4->Name = S"label4";

                  this->label4->TabIndex = 36;

                  this->label4->Text = S"Phone:";

                  this->label4->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label3

                  //

                  this->label3->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label3->Location = System::Drawing::Point(8, 64);

                  this->label3->Name = S"label3";

                  this->label3->TabIndex = 34;

                  this->label3->Text = S"City:";

                  this->label3->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label2

                  //

                  this->label2->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label2->Location = System::Drawing::Point(8, 40);

                  this->label2->Name = S"label2";

                  this->label2->TabIndex = 32;

                  this->label2->Text = S"Address:";

                  this->label2->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // label1

                  //

                  this->label1->Font = new System::Drawing::Font(S"Comic Sans MS", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, (System::Byte)0);

                  this->label1->Location = System::Drawing::Point(8, 16);

                  this->label1->Name = S"label1";

                  this->label1->TabIndex = 30;

                  this->label1->Text = S"First Name:";

                  this->label1->TextAlign = System::Drawing::ContentAlignment::TopRight;

                  //

                  // tabPage2

                  //

                  this->tabPage2->Location = System::Drawing::Point(4, 22);

                  this->tabPage2->Name = S"tabPage2";

                  this->tabPage2->Size = System::Drawing::Size(480, 201);

                  this->tabPage2->TabIndex = 0;

                  this->tabPage2->Text = S"Set Start Times";

                  this->tabPage2->Visible = false;

                  //

                  // tabPage3

                  //

                  this->tabPage3->Location = System::Drawing::Point(4, 22);

                  this->tabPage3->Name = S"tabPage3";

                  this->tabPage3->Size = System::Drawing::Size(480, 201);

                  this->tabPage3->TabIndex = 1;

                  this->tabPage3->Text = S"Enter Finish Times";

                  this->tabPage3->Visible = false;

                  //

                  // tabPage4

                  //

                  this->tabPage4->Location = System::Drawing::Point(4, 22);

                  this->tabPage4->Name = S"tabPage4";

                  this->tabPage4->Size = System::Drawing::Size(480, 201);

                  this->tabPage4->TabIndex = 2;

                  this->tabPage4->Text = S"See Results";

                  this->tabPage4->Visible = false;

                  //

                  // Form1

                  //

                  this->AutoScaleBaseSize = System::Drawing::Size(5, 13);

                  this->ClientSize = System::Drawing::Size(504, 238);

                  this->Controls->Add(this->tabControl1);

                  this->Name = S"Form1";

                  this->Text = S"Form1";

                  this->tabControl1->ResumeLayout(false);

                  this->tabPage1->ResumeLayout(false);

                  this->ResumeLayout(false);

 

            }    

      private: System::Void btnNext_Click(System::Object *  sender, System::EventArgs *  e)

                   {

                         this->BindingContext->get_Item(dsEntries, S"Entry")->Position = this->BindingContext->get_Item(dsEntries, S"Entry")->Position + 1;

 

                         int intPosition = this->BindingContext->get_Item(dsEntries, S"Entry")->Position + 1;

                         int intCount = this->BindingContext->get_Item(dsEntries, S"Entry")->Count;

 

                         lblPosition->Text = String::Format(S"{0} of {1}", __box(intPosition), __box(intCount));

                   }

 

private: System::Void btnPrev_Click(System::Object *  sender, System::EventArgs *  e)

             {

                         this->BindingContext->get_Item(dsEntries, S"Entry")->Position = this->BindingContext->get_Item(dsEntries, S"Entry")->Position - 1;

 

                         int intPosition = this->BindingContext->get_Item(dsEntries, S"Entry")->Position + 1;

                         int intCount = this->BindingContext->get_Item(dsEntries, S"Entry")->Count;

 

                         lblPosition->Text = String::Format(S"{0} of {1}", __box(intPosition), __box(intCount));

             }

 

private: System::Void btnFirst_Click(System::Object *  sender, System::EventArgs *  e)

             {

                         this->BindingContext->get_Item(dsEntries, S"Entry")->Position = 0;

 

                         int intPosition = this->BindingContext->get_Item(dsEntries, S"Entry")->Position + 1;

                         int intCount = this->BindingContext->get_Item(dsEntries, S"Entry")->Count;

 

                         lblPosition->Text = String::Format(S"{0} of {1}", __box(intPosition), __box(intCount));

             }

 

private: System::Void btnLast_Click(System::Object *  sender, System::EventArgs *  e)

             {

                         this->BindingContext->get_Item(dsEntries, S"Entry")->Position = this->BindingContext->get_Item(dsEntries, S"Entry")->Count - 1;

 

                         int intPosition = this->BindingContext->get_Item(dsEntries, S"Entry")->Position + 1;

                         int intCount = this->BindingContext->get_Item(dsEntries, S"Entry")->Count;

 

                         lblPosition->Text = String::Format(S"{0} of {1}", __box(intPosition), __box(intCount));

             }

 

private: System::Void btnSave_Click(System::Object *  sender, System::EventArgs *  e)

             {

                  // If this is a new entry (Add button clicked), add a new row.

                  // Otherwise, save the current row.

                  int intPosition = this->BindingContext->get_Item(dsEntries, S"Entry")->Position + 1;

 

                  if (booNewRow)

                  {

                        //booNewRow = false;

     

                        //DataRow* drNewRow = dsEntries->Tables->Item[S"Entry"]->NewRow();

                        ////DataRow* drNewRow = dsEntries->Tables("Entry")->NewRow();

                        ////DataRow dr;

                        //int intCurKey;

                        //int intNewKey = 0;

                        //int i = 0;

     

                        //// Save the current form values.

                        //String* strFName = txtFName->Text;

                        //String* strLName = txtLName->Text;

                        //String* strAddress = txtAddress->Text;

                        //String* strCity = txtCity->Text;

                        //String* strState = txtState->Text;

                        //String* strZip = txtZip->Text;

                        //String* strPhone = txtPhone->Text;

                        //String* strEmail = txtEmail->Text;

                        //String* strBirthdate = txtBirthdate->Text;

                        //String* strGender = cboGender->Text;

                        //String* strClass = cboClass->Text;

                        //String* strBibNum = txtBibNumber->Text;

     

                        //// Get new key.

                        //DataRow* dr;

                        //do

                        //{

                        //    dr = dsEntries->Tables->Item[S"Entry"]->Rows->Item[i];

                        //    intCurKey = dr[S"RaceKey"];

                        //    //intCurKey = dsEntries->Tables->Item[S"Entry"]->Columns->Item["RaceKey"]->;

                        //    if (intCurKey > intNewKey)

                        //    {

                        //          intNewKey = intCurKey;

                        //    }

                        //    i++

                        //}

                        //while ! dsEntries->Tables->Item[S"Entry"]->EOF

                        //intNewKey++;

 

                        ////foreach (DataRow* dr in dsEntries->Tables->Item[S"Entry"]->Rows)

                        ////{

                        ////  intCurKey = int->Parse(dr["RaceKey"]->ToString());

                        ////    if (intCurKey > intNewKey)

                        ////        intNewKey = intCurKey;

                        ////}

                        ////intNewKey++;

                        //

                        //// Populate and add the new data row.

                        //drNewRow["FirstName"] = strFName;

                        //drNewRow["LastName"] = strLName;

                        //drNewRow["RaceKey"] = intNewKey;

                        //drNewRow["Address"] = strAddress;

                        //drNewRow["City"] = strCity;

                        //drNewRow["State"] = strState;

                        //drNewRow["Zip"] = strZip;

                        //drNewRow["Phone"] = strPhone;

                        //drNewRow["Email"] = strEmail;

                        //if (txtBirthdate.Text == "")

                        //    drNewRow["Birthdate"] = DBNull.Value;

                        //else

                        //    drNewRow["Birthdate"] = DateTime.Parse(strBirthdate);

                        //drNewRow["Gender"] = strGender;

                        //drNewRow["Class"] = strClass;

                        //if (txtBibNumber.Text == "")

                        //    drNewRow["BibNum"] = DBNull.Value;

                        //else

                        //    drNewRow["BibNum"] = int.Parse(strBibNum);

                        //dsEntries.Tables["Entry"].Rows.Add(drNewRow);

 

                        //// Update the .xml file.   

                        //try

                        //{

                        //    XmlDocument xmldoc = new XmlDocument();

                        //    xmldoc->Load(Directory->GetCurrentDirectory() + "\\Entry.xml");

                        //    XmlElement xmlEl = xmldoc->CreateElement("Entry");

                        //    xmldoc->DocumentElement->AppendChild(xmlEl);

     

                        //    XmlElement xmlChildEl;

     

                        //    xmlChildEl = xmldoc->CreateElement("RaceKey");

                        //    XmlText xmlText = xmldoc->CreateTextNode(intNewKey.ToString());

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("FirstName");

                        //    xmlText = xmldoc->CreateTextNode(strFName);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("LastName");

                        //    xmlText = xmldoc->CreateTextNode(strLName);

                        //    xmlChildEl->AppendChild(xmlText);;

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("Address");

                        //    xmlText = xmldoc->CreateTextNode(strAddress);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("City");

                        //    xmlText = xmldoc->CreateTextNode(strCity);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("State");

                        //    xmlText = xmldoc->CreateTextNode(strState);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("Zip");

                        //    xmlText = xmldoc->CreateTextNode(strZip);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("Phone");

                        //    xmlText = xmldoc->CreateTextNode(strPhone);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("Email");

                        //    xmlText = xmldoc->CreateTextNode(strEmail);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("Birthdate");

                        //    xmlText = xmldoc->CreateTextNode(strBirthdate);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("Gender");

                        //    xmlText = xmldoc->CreateTextNode(strGender);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("Class");

                        //    xmlText = xmldoc->CreateTextNode(strClass);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmlChildEl = xmldoc->CreateElement("BibNum");

                        //    xmlText = xmldoc->CreateTextNode(strBibNum);

                        //    xmlChildEl->AppendChild(xmlText);

                        //    xmlEl->AppendChild(xmlChildEl);

     

                        //    xmldoc->Save(Directory->GetCurrentDirectory() + "\\Entry.xml");

                        //}

                        //catch (Exception ex)

                        //{

                        //    MessageBox->Show(ex->Message);

                        //}

     

                        //// Refresh the data set.

                        //dsEntries->Clear();

                        //dsEntries->ReadXml(Directory->GetCurrentDirectory() + "\\Entry.xml");

     

                        ////// Go to the new record.

                        ////bmb.Position = bmb.Count - 1;

 

                        ////lblPosition.Text = String.Format("{0} of {1}", bmb.Position + 1, bmb.Count);

                  }

                  else

                  {

                        // Save combo box values.

                        String* strGender = cboGender->Text;

                        String* strClass = cboClass->Text;

 

                        //// Force a refresh.

                        //bmb.Position = intPosition;

 

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["FirstName"] = txtFName->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["LastName"] = txtLName->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["Address"] = txtAddress->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["City"] = txtCity->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["State"] = txtState->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["Zip"] = txtZip->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["Phone"] = txtPhone->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["Email"] = txtEmail->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["Birthdate"] = txtBirthdate->Text;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["Gender"] = strGender;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["Class"] = strClass;

                        dsEntries->Tables->Item[S"Entry"]->Rows->Item[intPosition]->Item["BibNum"] = txtBibNumber->Text;

 

                        // Update the .xml file.   

                        try

                        {

                              dsEntries->WriteXml(String::Concat(Directory::GetCurrentDirectory(), "\\Entry.xml"));

                        }    

                        catch (System::Exception* ex)

                        {

                              Console::WriteLine(ex);

                              //System::Windows::Forms::MessageBox->Show(pex->Message);

                        }

                  }

             }

 

private: System::Void btnAdd_Click(System::Object *  sender, System::EventArgs *  e)

             {

                  booNewRow = true;

                  txtFName->Text = "";

                  txtLName->Text = "";

                  txtAddress->Text = "";

                  txtCity->Text = "";

                  txtState->Text = "";

                  txtZip->Text = "";

                  txtPhone->Text = "";

                  txtEmail->Text = "";

                  txtBirthdate->Text = "";

                  cboGender->Text = "";

                  cboClass->Text = "";

                  txtBibNumber->Text = "";

                  txtID->Text = "";

             }

 

private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)

             {

                  int intPosition = this->BindingContext->get_Item(dsEntries, S"Entry")->Position + 1;

 

                  dsEntries->Tables->Item["Entry"]->Rows->Item[intPosition]->Delete();

                  dsEntries->AcceptChanges();

 

                  // Update the .xml file.   

                  try

                  {

                        dsEntries->WriteXml(String::Concat(Directory::GetCurrentDirectory(), "\\Entry.xml"));

                  }

                  catch (System::Exception* ex)

                  {

                        Console::WriteLine(ex);

                  }

                  intPosition = this->BindingContext->get_Item(dsEntries, S"Entry")->Position - 1;

                  int intCount = this->BindingContext->get_Item(dsEntries, S"Entry")->Count;

                  lblPosition->Text = String::Format(S"{0} of {1}", __box(intPosition), __box(intCount));

             }

 

};

}