Передать значения datagridview в окно сообщения с форматированием в vb.net - PullRequest
0 голосов
/ 30 августа 2018

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

Вот изображение:

Here is the column

А вот и результат сообщения:

Message box result

Как вы видите, здесь нет запятой и точки. Я хочу включить запятую и точку.

Вот это datagridview_cellformatting:

Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
    If (e.ColumnIndex = 7) Then
        DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).ValueType = GetType(Double)
        DataGridView1.Columns(7).DefaultCellStyle.Format = "N2"
    End If

    If DataGridView1.Rows(e.RowIndex).Cells(7).Value Is DBNull.Value Then
        DataGridView1.Rows(e.RowIndex).Cells(7).Value = "0.00"
    End If
End Sub

А вот и MessageBox:

MessageBox.Show(DataGridView1.Rows(0).Cells(7).Value)

Как это решить?

1 Ответ

0 голосов
/ 30 августа 2018

Здесь вы указываете формат для ячеек столбца:

DataGridView1.Columns(7).DefaultCellStyle.Format = "N2"

Вы должны предоставить тот же спецификатор формата при преобразовании значения в String где-либо еще, например,

MessageBox.Show(DataGridView1.Rows(0).Cells(7).Value.ToString(DataGridView1.Columns(7).DefaultCellStyle.Format))

Если бы у вас был Option Strict On, который вы ВСЕГДА должны иметь, то вам нужно сделать это:

MessageBox.Show(CDbl(DataGridView1.Rows(0).Cells(7).Value).ToString(DataGridView1.Columns(7).DefaultCellStyle.Format))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...