private void buttonSelect_Click(object sender, EventArgs e) { var clsf = EditingControlDataGridView.CurrentCell.Value as Classifier; if (clsf == null || Classifier.Empty.Equals(clsf)) { clsf = DebtDAO.FindNearestClassifier(EditingControlFormattedValue as string); } clsfForm.SelectedClassifier = clsf ?? Classifier.Empty; if (clsfForm.ShowDialog() == DialogResult.OK) { clsf = clsfForm.SelectedClassifier; if (clsf != null) { EditingControlDataGridView.CurrentCell.Value = clsf; EditingControlFormattedValue = clsf.MaskedCode; } } }
private void maskedTextBox_TextChanged(object sender, EventArgs e) { if (EditingControlDataGridView != null) { EditingControlDataGridView.NotifyCurrentCellDirty(true); } EditingControlValueChanged = true; if (!DebtDAO.GetSettings().IsAutoPasteClassifier) { return; } //автоподстановка классификатора int position = (int)caretField.GetValue(maskedTextBox) + 1; string code = Classifier.RemoveMaskSymbols(Text.Substring(0, position)); if (string.IsNullOrEmpty(code) || code.Length == Classifier.CodeLenght) { return; } var clsf = DebtDAO.FindNearestClassifier(code); string newCode = null; if (clsf != null) { newCode = clsf.MaskedCode; } else { newCode = code + new string('0', Classifier.CodeLenght).Substring(0, Classifier.CodeLenght); } position -= 1; Text = newCode; if (0 <= position && position < maskedTextBox.MaskedTextProvider.Length) { caretField.SetValue(maskedTextBox, position); } }