2012-02-11 10 views
0

私のフォームのロードイベントで、私はdefaultcellstyleフォーマットを設定しています。彼らは誰にも分からないのですか?私は、グリッドにデータテーブルを結合した後のコードで期待されているフォーマットのいずれであっても、コードのステップいえを通じて行われないばかりされてあなたは列のValueType、および「##を設定する必要がdatagridviewフォーマットが適用されない

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 

答えて

2

。 ## "は動作していないようです(とにかくC#で)。

これは、C#で動作します。また、データがバインドされている

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

は、実際にいくつかの数値型(私はそれがある推測が、あなたのコードスニペットから確認することはできません)でなければなりません。

typeof()を同等のVB.NETに変換する必要があります。 "##。##"と "N2"の違いが制御のものであるかどうかはわかりません。それを変更する)または言語のもの(その場合はあなたはしません)。

関連する問題