【问题标题】:Format the list items from the DataGridViewComboBox格式化 DataGridViewComboBox 中的列表项
【发布时间】:2011-04-02 05:47:53
【问题描述】:

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

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

但是,当用户单击 ComboBox 来选择一个值时,列表中的值没有被格式化。 例如,而不是看到:

3.90 €
4.50 €
5.95 €

他们看到

3.9
4.5
5.95

这些值也是左对齐的,而我希望它们右对齐。

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

是否有可能得到我想要的结果?

谢谢。

【问题讨论】:

    标签: c# .net winforms datagridview combobox


    【解决方案1】:

    只需处理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"
    }
    

    【讨论】:

    • 太好了,谢谢。如果我有几个想要以不同格式设置的 ComboBox 列,我该怎么办?在大多数事件中,我有一个 e.ColumnIndex 属性,它允许我查看为哪一列引发了事件,但 EditingControlShowing 事件似乎并非如此?谢谢!
    • 好吧,我只是这样做了:“if (gridView.CurrentCell.ColumnIndex == gridView.Columns["Price"].Index)" 并且它可以解决问题,但是如果有更好的方法,请不要犹豫,让我知道。谢谢。
    猜你喜欢
    • 2015-04-03
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多