Обрезать пробелы из DatagridViewCell - PullRequest
1 голос
/ 07 октября 2019

Я работаю с некоторыми DataGridView и испытываю трудности с их манипулированием. Я хочу обрезать все пробелы из текста, введенного в ячейки, но я не уверен, как это сделать.

Я пробовал использовать несколько разных событий, но не знаю, какое из них лучшеили, если это вообще возможно. Я попробовал следующие события: CellContentChanged, CellLeave, CellEndEdit, CellValueChanged и CellValidating. Помимо того, что я не знаю, какой из них использовать, я также не знаю, почему типичные функции Trim не работают с ячейками.

Использование чего-либо подобного приведенному ниже коду в этих случаях не помогает. ,

if (e.ColumnIndex == 1 && dgvApps.CurrentCell.Value != null)
          {

            string temp = dgvApps.CurrentCell.Value.ToString();
            temp.Trim();
          }

Попытка отловить и предотвратить нажатия клавиш так же, как и в текстовом поле.

    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
    {
        e.Handled = true;
    }

Моя цель - проверить наличие дубликатов и предотвратить пустые записи. Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 07 октября 2019

Вы можете использовать событие CellFormatting следующим образом:

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
  if ( e.Value != null )
    e.Value = ( (string)e.Value ).Trim();
}

Это обрезает вход в ячейку, а также обновляет ограниченный элемент данных.

...