Значение ячейки Datagridview не обновляется при динамическом изменении - PullRequest
5 голосов
/ 11 мая 2011

Исходя из требований к дизайну, представление данных не может быть отредактировано напрямую пользователем. Это в режиме только для чтения. Когда пользователь дважды щелкает ячейку, свойство datagridview, доступное только для чтения, становится ложным, и ячейка принимает ввод с клавиатуры. Однако необработанный ввод с клавиатуры необходимо отформатировать, прежде чем он попадет в ячейку. Итак, я перехватываю события KeyPress следующим образом:

private void dgw_keyPress(object sender, KeyPressEventArgs e)
 {
     e.Handled = true;
 }

В этот момент ячейка находится в режиме редактирования и в грязном режиме. Затем я обновляю свойство Value в другом методе и вызываю dgw.Refresh(), который должен отображать обновленное значение в ячейке. Но это не так. он будет обновляться только в том случае, если текущая ячейка не загрязнена и не находится в режиме редактирования. Как заставить ячейку отображать обновленное значение, пока оно все еще находится в режиме редактирования?

Есть идеи?

Ответы [ 4 ]

11 голосов
/ 21 февраля 2012

Используйте ниже, чтобы обновить значение текущей ячейки, измените в соответствии с вашим типом EditingControl

if (dgvMain.EditingControl is TextBox)
{
    dgvMain.EditingControl.Text = dgvMain.CurrentCell.Value.ToString();
}

Другой метод:

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

dgvMain.RefreshEdit();
0 голосов
/ 04 апреля 2016

Я решил с кодом ниже.

GrdBudgetTabOver.EndEdit()
0 голосов
/ 12 мая 2011

Попробуйте DataGridView.EndEdit метод.

Передает и завершает операцию редактирования в текущей ячейке.

0 голосов
/ 11 мая 2011

Вы можете сделать это, реализовав интерфейс IDataGridViewEditingControl . Я думаю, что это способ получить максимальный контроль над тем, как ячейка входит и выходит из режима редактирования. Вы можете найти более подробную информацию в разделе 5.11 FAQ по DG Mark Mark Rideout * (1004 *

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