C# 在DevExpress网格控件中正确设置货币格式

C# 在DevExpress网格控件中正确设置货币格式,c#,winforms,devexpress,currency,gridcontrol,C#,Winforms,Devexpress,Currency,Gridcontrol,所以我也看到了其他的问题,但我不能把我的网格格式作为我的浮动货币。这是我的简单项目,它有一个名为gridcontrol1的网格控件,有4列,我希望最后一列是currency,其他3列是string public partial class Form1 : Form { private DevExpress.XtraGrid.GridControl gridControl1; private DevExpress.XtraGrid.Views.Grid.GridView gridV

所以我也看到了其他的问题,但我不能把我的网格格式作为我的浮动货币。这是我的简单项目,它有一个名为gridcontrol1的网格控件,有4列,我希望最后一列是currency,其他3列是string

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”、“N2”的格式字符串和自定义和数字的FormatType以及它们的任意组合,得到了框中列出的“1.5”的相同结果。我是不是做错了什么?这不会那么难吧

请尝试以下方法(这对我来说很好):

相关链接:

还可以将
ColumnView.PopulateColumns
命令作为GridView删除。调用此方法时,Columns集合将被清除。 因此,您在设计器中为列设置的显示格式不会影响新创建的列。

请尝试以下操作(这对我来说很好):

相关链接:

还可以将
ColumnView.PopulateColumns
命令作为GridView删除。调用此方法时,Columns集合将被清除。 因此,在设计器中为列设置的显示格式不会影响新创建的列。

而不是

gridColumn4.DisplayFormat.FormatString = "c";
gridColumn4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
向上移动第二行:

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

gridColumn4.DisplayFormat.FormatString = "c";
gridColumn4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
向上移动第二行:

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

这对我不起作用,字段仍然显示为没有货币格式。@KDiTraglia:真奇怪。。。它应该按照文档中的描述工作。由于缺乏信息,很难确定此问题的原因。因此,我建议您(附上完整的样品)。无论如何,如果您在使用DevExpress时遇到问题,您应该向DevExpress支持部门报告这些问题,而不是向他们报告。在询问dev express后,发现它不工作的原因是这一行
gridControl1.MainView.PopulateColumns()正在重置布局,我将留下您作为接受的答案,因为您引导我走向正确的方向,但我将编辑实际为我解决的问题。这对我不起作用,字段仍然显示,没有货币格式。@KDiTraglia:这很奇怪…”。。。它应该按照文档中的描述工作。由于缺乏信息,很难确定此问题的原因。因此,我建议您(附上完整的样品)。无论如何,如果您在使用DevExpress时遇到问题,您应该向DevExpress支持部门报告这些问题,而不是向他们报告。在询问dev express后,发现它不工作的原因是这一行
gridControl1.MainView.PopulateColumns()
正在重置布局,我将留下您作为接受的答案,因为您引导我朝着正确的方向前进,但我将编辑实际解决了这一问题的方法。我应用了代码格式,您可以通过在编辑框中选择代码行,然后单击“{}”按钮(针对每个代码块)。我应用了代码格式,您可以自己选择编辑框中的代码行,然后单击“{}”按钮(针对每个代码块)来执行此操作。