private void ControlToFocus(TextBox txt, char key = ' ') { _currentTextBox = txt; _cboEditor.Hide(); bool Proceed = true; var s = txt.Text; switch (txt.Name) { case "textSex": _cboEditor = _cboSex; break; case "textGMS": _cboEditor = _cboGMS; break; default: Proceed = false; break; } if (Proceed) { _cboEditor.Show(); _cboEditor.Tag = txt.Tag; _cboEditor.Bounds = txt.Bounds; _cboEditor.BringToFront(); _cboEditor.Show(); _cboEditor.Focus(); if (key > ' ') { var itemIndex = _cboEditor.FindString(key.ToString()); if (itemIndex > -1) { if (txt.Name == "textSex") { _cboEditor.Text = _cboEditor.Items[itemIndex].ToString(); } else { var gmsStage = (KeyValuePair <FishCrabGMS, string>)_cboEditor.Items[itemIndex]; _cboEditor.Text = GMSManager.GMSStageToString(_taxa, gmsStage.Key); } } _cboEditor.Text = key.ToString(); } else if (s.Length > 0) { _cboEditor.Text = s; } SetEditorEvents(); } }
/// <summary> /// Populates fields if GMS data exists or adds a new row /// </summary> /// <param name="IsNew"></param> private void PopulateFieldControls(bool isNew, bool repopulate = false) { _y = 5; _row = 1; if (repopulate) { foreach (var item in _gmsData) { if (item.Value.DataStatus != fad3DataStatus.statusForDeletion) { AddRow(IsNew: false, item.Key, item.Value); } } } else { if (isNew) { //adds a new row of empty fields AddRow(IsNew: true); } else { _gmsData = GMSManager.RetrieveGMSData(_catchRowGuid); foreach (var item in _gmsData) { AddRow(IsNew: false, item.Key, item.Value); } } foreach (Control c in panelUI.Controls) { if (c.GetType().Name == "TextBox") { ((TextBox)c).With(o => { o.Font = Font; o.Height = _ctlHeight; }); } } } }
private void OncboEditor_Validating(object sender, CancelEventArgs e) { switch (_cboEditor.Name) { case "cboSex": _gmsData[_cboEditor.Tag.ToString()].Sex = (Sex)Enum.Parse(typeof(Sex), _cboEditor.Text); break; case "cboGMS": _gmsData[_cboEditor.Tag.ToString()].GMS = GMSManager.GMSStageFromString(_cboEditor.Text, _gmsData[_cboEditor.Tag.ToString()].Taxa); break; } if (_currentTextBox.Text != _cboEditor.Text) { _currentTextBox.Text = _cboEditor.Text; SetRowStatusToEdited(_currentTextBox); } }
private bool SaveGMS() { return(GMSManager.UpdateGMSData(_gmsData)); }
private void AddRow(bool IsNew, string key = "", GMSLineClass gmsLine = null) { const int x = 0; int yPos = _y - Math.Abs(panelUI.AutoScrollPosition.Y); Label labelRow = new Label(); TextBox textLength = new TextBox(); TextBox textWeight = new TextBox(); TextBox textGonadWeight = new TextBox(); TextBox textGMS = new TextBox(); TextBox textSex = new TextBox(); //we only add the comboboxes once if (_row == 1 && _comboBoxesSet == false) { _comboBoxesSet = true; _cboSex.With(o => { o.Width = 120; o.Name = "cboSex"; o.Location = new Point(0, 0); o.Visible = false; o.DropDownStyle = ComboBoxStyle.DropDownList; o.DataSource = Enum.GetValues(typeof(Sex)); o.AutoCompleteSource = AutoCompleteSource.ListItems; o.AutoCompleteMode = AutoCompleteMode.SuggestAppend; o.Font = Font; _ctlHeight = o.Height; }); _cboGMS.With(o => { o.Width = 120; o.Font = Font; o.Name = "cboGMS"; o.Location = new Point(0, 0); o.DropDownStyle = ComboBoxStyle.DropDownList; o.AutoCompleteSource = AutoCompleteSource.ListItems; o.AutoCompleteMode = AutoCompleteMode.SuggestAppend; var hasGMSStage = false; var gmsDict = GMSManager.GMSStages(_taxa, ref hasGMSStage); if (hasGMSStage) { o.DataSource = new BindingSource(gmsDict, null); o.DisplayMember = "Value"; o.ValueMember = "Key"; o.AutoCompleteSource = AutoCompleteSource.ListItems; } else { } o.Visible = false; }); panelUI.Controls.Add(_cboSex); panelUI.Controls.Add(_cboGMS); } panelUI.Controls.With(o => { o.Add(labelRow); o.Add(textLength); o.Add(textWeight); o.Add(textSex); o.Add(textGMS); o.Add(textGonadWeight); }); if (IsNew) { key = Guid.NewGuid().ToString(); _gmsData.Add(key, new GMSLineClass(_catchRowGuid)); _gmsData[key].RowGuid = Guid.NewGuid().ToString(); _gmsData[key].Sequence = _row; _gmsData[key].DataStatus = fad3DataStatus.statusNew; _gmsData[key].Taxa = _taxa; } labelRow.With(o => { o.Text = _row.ToString(); o.Location = new Point(x, yPos); o.Width = 40; o.TextAlign = ContentAlignment.MiddleLeft; o.Name = "labelRow"; o.Tag = key; }); textLength.With(o => { o.Width = 60; o.Name = "textLen"; o.Location = new Point(labelRow.Left + labelRow.Width + _spacer, yPos); _ctlWidth = o.Width; if (!IsNew) { if (_gmsData[key].Length != null) { o.Text = _gmsData[key].Length.ToString(); } } o.Tag = key; SetTextBoxEvents(o); }); textWeight.With(o => { o.Width = 60; o.Name = "textWgt"; o.Location = new Point(textLength.Left + textLength.Width + _spacer, yPos); if (!IsNew) { if (_gmsData[key].Weight != null) { o.Text = _gmsData[key].Weight.ToString(); } } o.Tag = key; SetTextBoxEvents(o); }); textSex.With(o => { o.Width = 60; o.Name = "textSex"; o.Location = new Point(textWeight.Left + textWeight.Width + _spacer, yPos); o.Width += (int)(_ctlWidth * 0.5); if (!IsNew) { o.Text = _gmsData[key].Sex.ToString(); } o.Tag = key; SetTextBoxEvents(o); }); textGMS.With(o => { o.Width = 60; o.Name = "textGMS"; o.Location = new Point(textSex.Left + textSex.Width + _spacer, yPos); o.Width += _ctlWidth; if (!IsNew) { o.Text = GMSManager.GMSStageToString(_gmsData[key].Taxa, _gmsData[key].GMS); } o.Tag = key; SetTextBoxEvents(o); }); textGonadWeight.With(o => { o.Width = 60; o.Name = "textGonadWeight"; o.Location = new Point(textGMS.Left + textGMS.Width + _spacer, yPos); if (!IsNew) { if (_gmsData[key].GonadWeight != null) { o.Text = _gmsData[key].GonadWeight.ToString(); } } o.Tag = key; SetTextBoxEvents(o); }); textLength.Enabled = chkLenght.Checked; textWeight.Enabled = chkWeight.Checked; textSex.Enabled = chkSex.Checked; textGMS.Enabled = chkGMS.Checked; textGonadWeight.Enabled = chkGonadWt.Checked; if (_row == 1) { labelCol1.Left = labelRow.Left; labelCol2.Left = textLength.Left; labelCol3.Left = textWeight.Left; labelCol4.Left = textSex.Left; labelCol5.Left = textGMS.Left; labelCol6.Left = textGonadWeight.Left; } _y += labelRow.Height + _spacer; if (IsNew || _row >= GMSManager.GMSMeasurementRows) { _lastGMS = textGMS; _lastGonadWt = textGonadWeight; _lastLength = textLength; _lastSex = textSex; _LastWeight = textWeight; } _row++; }