Форматирование ячейки DataGridView для ввода процентов? - PullRequest
0 голосов
/ 24 июля 2010

Как мне отформатировать DataGridView ячейку только для ввода процентов?

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

Это старый, но в случае, если он поможет кому-то еще ..

dataGridView1.Columns[ColumnIndexNumber].DefaultCellStyle.Format = "#.000\\%";
0 голосов
/ 22 февраля 2019

Несмотря на то, что сообщение не становится моложе, я думаю, что ответ Миго отвечает только на часть вопроса, и, возможно, кто-то еще может быть заинтересован. Ответ Migo объяснил, как отображать числа в процентах, но оставил вопрос о том, как пользователь может вводить строки, включая символ процента (которые интерпретируются как двойные), без ответа. Попытка преобразовать EditedFormattedValue ячейки, которая запускает событие DataError, чтобы удвоить, добилась цели для меня:

Private Sub dgvs_DataError(sender As Object, e As DataGridViewDataErrorEventArgs) Handles dgv.DataError
    Dim dgv As DataGridView
    Dim percentageClearedValue As Double

    dgv = CType(sender, DataGridView)
    If e.Exception IsNot Nothing Then
        percentageClearedValue = ConvPercentToDbl(dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).EditedFormattedValue)
        If percentageClearedValue <> Double.MinValue Then
            dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = percentageClearedValue
            dgv.UpdateCellValue(e.ColumnIndex, e.RowIndex)
            dgv.EndEdit()
            e.ThrowException = False
        End If
    End If
End Sub

Функция ConvPercentToDbl пытается преобразовать процентную строку в двойную. Если это не удается, возвращается Double.MinValue.

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