1

テーブル sales(invoice,dateinv,seller,grade) があります

Dim sql As String = "SELECT * FROM Sales"
Dim daHeader As New SqlDataAdapter(sql, Conn)
Dim dtSales As New DataTable
daHeader.Fill(dtSales)

dgvheader.AutoGenerateColumns = False
dgvHeader.Columns.Add(New DataGridViewTextBoxColumn() With {.HeaderText = "Date", .DataPropertyName = "dateinv"}) 
dgvHeader.Columns.Add(New DataGridViewTextBoxColumn() With {.HeaderText = "Seller", .DataPropertyName = "seller"}) 
dgvHeader.Columns.Add(New DataGridViewTextBoxColumn() With {.HeaderText = "Grade", .DataPropertyName = "grade"}) 
dgvHeader.DataSource = dtSales

成績列の値は 1 ~ 3 です。
Datagridview で Grade 値を次のように表示する方法:
1 = "Excellent"
2 = "Good"
3 = "十分"

ありがとう、、

4

2 に答える 2

1

datagridwiew.cellformatting イベントを使用する

Private Sub dgvHeader_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles dgvHeader.CellFormatting

Dim sHeader As String = dgvHeader.Columns(e.ColumnIndex).Name

    If ucase(sHeader) = "GRADE" Then

        If e IsNot Nothing Then
            If e.Value IsNot Nothing Then
                Select Case e.value '-----------> assumed grade as numeric field
                  Case 1 : e.Value = "Excellent"
                  Case 2 : e.Value = "Good"
                  Case 3 : e.Value = "Enough"
                End Select                    
            End If        
        End If
        e.FormattingApplied = True
    End If
End Sub
于 2013-05-26T16:18:45.620 に答える
1

DataGridView.CellFormattingイベントをフックできます

編集

@matzone からのコードは、列の名前Headertextを設定すると機能しますが、設定とDataPropertyName

だからこれを試してください:

Private Sub dgvHeader_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles dgvHeader.CellFormatting

Dim sHeader As String = dgvHeader.Columns(e.ColumnIndex).HeaderText

    If sHeader = "Grade" Then

        If e IsNot Nothing Then
            If e.Value IsNot Nothing Then
                Select Case e.value '-----------> assumed grade as numeric field
                  Case 1 : e.Value = "Excellent"
                  Case 2 : e.Value = "Good"
                  Case 3 : e.Value = "Enough"
                End Select                    
            End If        
        End If
        e.FormattingApplied = True
    End If
End Sub

私はこの行だけを変更しました:

 Dim sHeader As String = dgvHeader.Columns(e.ColumnIndex).HeaderText
于 2013-05-25T09:19:25.567 に答える