2012-10-02 38 views
0

所以我已經看到了其他一些問題,但我不能爲我的生活做我的網格格式我的浮動貨幣。這是我的簡單項目,它有一個名爲gridcontrol1的網格控件,帶有4列,我希望最後一個是貨幣,其他3個是字符串。在在DevExpress Grid Control中正確格式化貨幣

public partial class Form1 : Form 
{ 
    private DevExpress.XtraGrid.GridControl gridControl1; 
    private DevExpress.XtraGrid.Views.Grid.GridView gridView1; 
    private DevExpress.XtraGrid.Columns.GridColumn gridColumn1; 
    private DevExpress.XtraGrid.Columns.GridColumn gridColumn2; 
    private DevExpress.XtraGrid.Columns.GridColumn gridColumn3; 
    private DevExpress.XtraGrid.Columns.GridColumn gridColumn4; 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     ArrayList test = new ArrayList(); 
     test.Add(new MyObject() { myCurrency = 1.5F, prop1 = "hi", prop2 = "hi2", prop3 = "hi3" }); 

     gridColumn4.DisplayFormat.FormatString = "c"; 
     gridColumn4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom; 

     gridControl1.DataSource = test; 
     gridControl1.MainView.PopulateColumns(); 
     gridControl1.RefreshDataSource(); 
    } 
} 

public class MyObject 
{ 
    public string prop1 { get; set; } 
    public string prop2 { get; set; } 
    public string prop3 { get; set; } 
    public float myCurrency { get; set; } 
} 

我試圖「C」,「C2」,「N」,定製和數字和與得到「1.5」的相同的結果它們的任何組合的「N2」和FormatType的格式字符串列出盒子。我在做一些簡單的錯誤?這不可能是那麼難!

回答

6

請嘗試以下方法(能正常工作對我來說):

GridColumn colCurrency = gridView1.Columns["myCurrency"]; 
colCurrency.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom; 
colCurrency.DisplayFormat.FormatString = "c"; 

相關鏈接:當這個方法被調用GridView.Columns清除此集合GridColumn.DisplayFormat Property

還能去除ColumnView.PopulateColumns命令。 因此,您在設計器中爲列設置的顯示格式不會影響新創建的列。

+0

這不是爲我工作,該領域仍然顯示沒有貨幣格式。 –

+0

@KDiTraglia:奇怪......它應該像文檔中描述的那樣工作。由於缺乏信息,很難確定這個問題的原因。因此,我建議你[將此問題報告給DevExpress支持中心](http://www.devexpress.com/Support/Center/Question/Create)(附帶完整示例)。 無論如何,如果遇到使用DevExpress的問題,您應該將這些問題報告給DevExpress支持,而不是SO。 – DmitryG

+1

事實證明,之後要求dev表達它不工作的原因是這行'gridControl1.MainView.PopulateColumns();'重置佈局,我會離開你作爲接受的答案,因爲你帶領我在正確的方向但我會編輯實際爲我解決這個問題。 –

0

而不是

gridColumn4.DisplayFormat.FormatString = "c"; 
gridColumn4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom; 

就向上移動的第二行:

gridColumn4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom; 
gridColumn4.DisplayFormat.FormatString = "c"; 
+0

我應用了代碼格式化,您可以通過在編輯框中選擇代碼行然後單擊「** {} **」按鈕(對於每個代碼塊)來完成此操作。 –