1

初始位置: 我已经将一个类型化的数据集(填充了来自 sql 查询的数据)绑定到了 DGV。DGV 条目不是为了阅读而编辑的。DGV 有 12 行(月)。

问题: 现在我试图显示月份名称而不是数字,你可以说我想标记值(1 = 一月,2 = 二月等),但不知道该怎么做。

我尝试了什么: 我的想法是创建和使用一个未绑定的表(值;月份名称),但我找不到可以执行我想要的列类型(DGV -> 编辑列)。

编辑:您好,不,这与标题无关。我给你一个例子。

ATM它看起来像:

1|true|
2|false|
3|false|

...我的目标是:

January|true|
Feburary|false|
March|false|
4

1 回答 1

1

也许您可以尝试“CellFormating”事件。在网络中这很简单,因为在每行数据绑定后都会引发一个事件,但不幸的是在 Windows 形式中没有。

我建议您直接在 CellFormating 事件中更改月份的值,如下所示:

Private Sub DataGridView1_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
    If e.Value IsNot Nothing AndAlso IsNumeric(e.Value) Then
        e.Value = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(e.Value)
    End If
End Sub

我刚刚测试了这段代码并且运行良好。

于 2013-11-04T16:18:19.297 回答