多列

时间:2015-07-15 05:13:48

标签: vb.net

我在vb.net中使用Visual Studio 2010并从Access DB中检索数据。

我需要以中等时间格式(00:00 PM)格式化多个列。下面的代码适用于一列,但我在同一个数据网格中有另一个名为TimeFinish的列需要以相同的方式进行格式化。

有人可以帮我添加格式到TimeFinish专栏吗 提前干杯。

Private Sub DataGridView1_CellFormatting(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) _
    Handles DataGridView1.CellFormatting

    If Me.DataGridView1.Columns(e.ColumnIndex).Name = "TimeStart" Then
        e.Value = String.Format("{0:t}", e.Value)
    End If

End Sub

1 个答案:

答案 0 :(得分:0)

使用:

Private Sub DataGridView1_CellFormatting(ByVal sender As Object, _ 
                                         ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) _ 
                                         Handles DataGridView1.CellFormatting 

    If Me.DataGridView1.Columns(e.ColumnIndex).Name = "TimeStart" Then 
        e.Value = String.Format("{0:t}", e.Value) 
    End If

    If Me.DataGridView1.Columns(e.ColumnIndex).Name = "TimeFinish" Then 
        e.Value = String.Format("{0:t}", e.Value) 
    End If

End Sub

如果你有很多不同的Ifs,你应该使用Select Case:

Private Sub DataGridView1_CellFormatting(ByVal sender As Object, _ 
                                         ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) _ 
                                         Handles 

    Select Case Me.DataGridView1.Columns(e.ColumnIndex).Name
        Case "TimeStart"
            e.Value = String.Format("{0:t}", e.Value)

        Case "TimeFinish"
            e.Value = String.Format("{0:t}", e.Value)

    End Select

End Sub