Как применить прописные буквы в указанном столбце DataGridView? - PullRequest
4 голосов
/ 05 июля 2010

Я хотел бы иметь возможность установить CharacterCasing указанного столбца в верхний регистр.

Я нигде не могу найти решение, которое конвертировало бы символы в верхний регистр , когда они набираются .

Большое спасибо за любую помощь

Ответы [ 3 ]

8 голосов
/ 05 июля 2010

Вам необходимо использовать событие EditingControlShowing в Datagridview, чтобы редактировать содержимое любой ячейки в столбце.Используя это событие, вы можете запустить событие нажатия клавиши в определенной ячейке.В событии нажатия клавиши вы можете применить правило, которое автоматически преобразует строчные буквы в прописные.

Вот шаги для достижения этого:

В событии EditingControlShowing посмотрите, находится ли пользователь в столбце вкоторый вы хотите применить это правило.Скажем, ваш столбец является вторым столбцом в сетке

private void TestDataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    if(TestDataGridView.CurrentCell.ColumnIndex.Equals(1))
    {
        e.Control.KeyPress += Control_KeyPress; // Depending on your requirement you can register any key event for this.
    }
}

private static void Control_KeyPress(object sender, KeyPressEventArgs e)
{
    // Write your logic to convert the letter to uppercase
}

Если вы хотите установить свойство CharacterCasing элемента управления textbox в столбце, то вы можете сделать это там, где KeyPress регистрация событий выполняется вприведенный выше код, который находится в блоке проверки индекса столбца if.В этом случае вы можете избежать события KeyPress.

Это можно сделать следующим образом:

if(e.Control is TextBox)
{
  ((TextBox) (e.Control)).CharacterCasing = CharacterCasing.Upper;
}
2 голосов
/ 05 июля 2010

В настоящее время я действительно знаю, но если бы вы могли получить доступ к элементу управления редактирования столбца (который является TextBox), вы могли бы установить свойство CharacterCasing .

1 голос
/ 10 февраля 2016

Используйте событие EditingControlShowing Datagridview для редактирования содержимого

После этого применить условие для конкретной колонки

private void dgvGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
      if (dgvGrid.CurrentCell.ColumnIndex == 0 || dgvGrid.CurrentCell.ColumnIndex == 2)
          {
           if (e.Control is TextBox)
              {
                ((TextBox)(e.Control)).CharacterCasing = CharacterCasing.Upper;
              }
          }
    }

Счастливое кодирование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...