C# 格式化DataGridViewComboBox中的列表项

C# 格式化DataGridViewComboBox中的列表项,c#,.net,winforms,datagridview,combobox,C#,.net,Winforms,Datagridview,Combobox,我在DataGridView上显示价格(在VS2008上用C#开发的WinForms应用程序上)。 列类型为DataGridViewComboBoxColumn 此列的DefaultCellStyle.Format属性设置为“C2”,并且价格在该列的单元格中确实被格式化为货币 但是,当用户单击组合框选择一个值时,列表上的值不会格式化。 例如,不要看到: 3.90 € 4.50 € 5.95 € 他们看到 3.9 4.5 5.95 这些值也是左对齐的,而我更喜欢右对齐 这是一张显示当前行为的图

我在DataGridView上显示价格(在VS2008上用C#开发的WinForms应用程序上)。 列类型为DataGridViewComboBoxColumn

此列的DefaultCellStyle.Format属性设置为“C2”,并且价格在该列的单元格中确实被格式化为货币

但是,当用户单击组合框选择一个值时,列表上的值不会格式化。 例如,不要看到:

3.90 €
4.50 €
5.95 €
他们看到

3.9
4.5
5.95
这些值也是左对齐的,而我更喜欢右对齐

这是一张显示当前行为的图片,我们可以清楚地看到,它看起来并不像可能的那么好

有可能得到我想要的结果吗


谢谢。

只需在
DataGridView
上处理
EditingControlShowing
事件,然后执行以下操作:

void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    ComboBox cb = e.Control as ComboBox;
    if (cb != null)
        cb.FormatString = "<your format string>"; // e.g. "C2"
}
void dataGridView1\u EditingControlShowing(对象发送方,DataGridViewEditingControlShowingEventArgs e)
{
组合框cb=e。控件作为组合框;
如果(cb!=null)
cb.FormatString=”“;//例如“C2”
}

只需在您的
DataGridView
上处理
EditingControlShowing
事件,然后执行以下操作:

void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    ComboBox cb = e.Control as ComboBox;
    if (cb != null)
        cb.FormatString = "<your format string>"; // e.g. "C2"
}
void dataGridView1\u EditingControlShowing(对象发送方,DataGridViewEditingControlShowingEventArgs e)
{
组合框cb=e。控件作为组合框;
如果(cb!=null)
cb.FormatString=”“;//例如“C2”
}

太好了,正在工作,谢谢。如果我有多个组合框列要以不同的格式设置,该怎么办?在大多数事件中,我有一个e.ColumnIndex属性,它允许我查看引发事件的列,但EditingControlShowing事件似乎不是这样?谢谢好吧,我只是这样做了:“如果(gridView.CurrentCell.ColumnIndex==gridView.Columns[“Price”].Index)”,它确实做到了,但是如果有更好的方法,请毫不犹豫地告诉我。谢谢。太好了,它正在工作。谢谢。如果我有多个组合框列要以不同的格式设置,该怎么办?在大多数事件中,我有一个e.ColumnIndex属性,它允许我查看引发事件的列,但EditingControlShowing事件似乎不是这样?谢谢好吧,我只是这样做了:“如果(gridView.CurrentCell.ColumnIndex==gridView.Columns[“Price”].Index)”,它确实做到了,但是如果有更好的方法,请毫不犹豫地告诉我。谢谢