форматирование представления данных не применяется - PullRequest
0 голосов
/ 11 февраля 2012

В моем событии загрузки формы я устанавливаю форматы стиля ячейки по умолчанию.Никто не знает почему?Ни одно из форматирования, ожидаемого в коде после того, как я связываю данные с сеткой, не выполняется, хотя код проходит через это

Private Sub frmADRORD_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    'wire the delegate function for incoming updates
    AddHandler m_helper.DataUpdate, AddressOf UpdateGridInvoker
    'bind the visual grid with the binding source
    Me.datagridADRORD.DataSource = dsGridView

    'get data from helper class
    m_dt = m_helper.GetTable()

    'bind the binding source with datatable
    Me.datagridADRORD.DataSource = m_dt

    **'after data loaded, auto resize columns and format
    Me.datagridADRORD.AutoResizeColumn(DataGridViewAutoSizeColumnMode.AllCellsExceptHeader)
    With Me.datagridADRORD.ColumnHeadersDefaultCellStyle
        .BackColor = Color.Gold
        .Alignment = DataGridViewContentAlignment.MiddleCenter
        .WrapMode = DataGridViewTriState.True
        .Font = New Font(Control.DefaultFont, FontStyle.Bold)
    End With
    Me.datagridADRORD.Columns("ADR Price").DefaultCellStyle.Format = "##.##"
    For Each row As DataGridViewRow In Me.datagridADRORD.Rows
        row.Cells("ORD Price").DataGridView.DefaultCellStyle.FormatProvider = Globalization.CultureInfo.GetCultureInfo(m_helper.CurrCultureInfoStr(row.Cells("Currency").Value))
    Next
    Me.datagridADRORD.Columns("Currency Price").DefaultCellStyle.Format = "##.####"
    Me.datagridADRORD.Columns("Difference").DefaultCellStyle.Format = "##.##"**
End Sub

1 Ответ

2 голосов
/ 14 февраля 2012

Вы должны установить ValueType столбца, и "##. ##", похоже, не работает (в любом случае в C #).

Это работает в C #:

        this.dataGridView1.Columns["Column3"].ValueType = typeof(Double);
        this.dataGridView1.Columns["Column3"].DefaultCellStyle.Format = "N2";

Кроме того, привязываемые данные на самом деле должны быть какого-то числового типа (я полагаю, что это так, но не могу быть уверенным из вашего фрагмента кода).

Вам придется перевести typeof() эквивалентно VB.NET, и я не знаю, является ли разница между "##. ##" и "N2" контрольной (в этом случае вам нужно ее изменить) или языковой (вв каком случае вы не будете).

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