Как разрешить заглавную букву, номер в ячейке datagridview? - PullRequest
0 голосов
/ 20 марта 2012

Я использую datagridview в моей программе Windows. В столбце 1 пользователь вводит заглавную букву и номер. В некоторых других столбцах (столбцы 3 и 4) пользователь будет вводить только целое число (без десятичного знака). Я пишу следующий код для преобразования введенного значения в заглавную букву для столбца 1: в событии CellEndEdit

    string strUpper = "";

                switch (e.ColumnIndex)
                {
                    case 1:
                        strUpper = dgView.CurrentCell.Value.ToString() ;
                        dgView.CurrentCell.Value = strUpper.ToUpper();
                        break;
                }

Введенное значение преобразуется в верхний регистр, когда фокус перемещается к следующей ячейке. Но я хочу знать, есть ли другое событие / код, чтобы сделать то же самое? И как не разрешить пользователю вводить десятичные числа в ячейки 3 и 4. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 20 марта 2012

Вы можете использовать CellValidating событие DataGridView, например:

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
        // insert additional checks to fit your constraints
        if (dataGridView1.CurrentCell.IsInEditMode) {
            int value;
            if (!int.TryParse(e.FormattedValue.ToString(), out value)) {
                MessageBox.Show("Must be integer!");
                e.Cancel = true;
            }
        }
    }
...