protected override void OnRecordBinding(FormRecordBindingEventArgs e)
 {
     base.OnRecordBinding(e);
         if (string.IsNullOrEmpty(TypeID) == false)
         {
             e.BindingSettings.DisplayMember = "Name";
             e.BindingSettings.ValueMember = "MasterID";
             try
             {
                 e.DataSource = new MasterCollection().Where("GroupID", TypeID).Load().ToDataTable();
                 e.BindingSettings.NewRecordProc += new NewRecordCallback(NewMaster);
             }
             catch (Exception)
             {
             }
         }
 }
 protected virtual void OnRecordBinding(FormRecordBindingEventArgs e)
 {
     if (RecordBindingEvent != null) //let client respond
             RecordBindingEvent(this, e);
 }
        protected override void OnLoad(System.EventArgs e)
        {
            base.OnLoad(e);
                //WindowState = FormWindowState.Maximized

                if (! DesignMode)
                {
                    FormRecordBindingEventArgs dataBindSettings = new FormRecordBindingEventArgs();
                    OnRecordBinding(dataBindSettings);
                    this._RecordState.CurrentState = FormRecordModes.EditMode; //By Default Form is in Edit Mode
                    this._RecordState.BindingData = true;
                    _DataSource = dataBindSettings.DataSource;
                    _BindingSettings = dataBindSettings.BindingSettings;
                    _NewRecordProc = _BindingSettings.NewRecordProc;

                    SPFormSupport.BindControls(this.Controls, ref DetailBinding, new System.EventHandler(OnFieldChanged));

                    MyTabOrderManager = new UI.VisualTabOrderManager(this);
                    MyTabOrderManager.SetTabOrder(UI.VisualTabOrderManager.TabScheme.DownFirst); // set tab order

                }
        }