2016-08-09 3 views
0

DataGridViewを使用していて、選択した列に中央揃えのテキストを配置する必要があり、ヘッダーの中央揃えを設定することができますが、私はどのように把握することができないのですか?Vb.Netでセルのテキストを整列するDataGridView

は私がCellFormattingEventで私は絵の下に与えられたとして、私のデータを表示したいType欄の拠点に3列、ID ,Name,Typeと4行、

があると私は別のカラースキームを設定するために管理しています。

Private Sub grdDetailsNew_CellFormatting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles grdFruitDetailsNew.CellFormatting 
    Try 
     If e.RowIndex > -1 Then 
      If grdDetailsNew.Rows.Count > 0 Then 
       If grdDetailsNew.Rows(e.RowIndex).Cells("Type").Value = 1 Then 
        e.CellStyle.BackColor = Color.FromArgb(253, 192, 97) 
        e.CellStyle.Font = New Font(e.CellStyle.Font.FontFamily, 17, FontStyle.Regular) 
       ElseIf grdDetailsNew.Rows(e.RowIndex).Cells("Type").Value = 2 Then 
        e.CellStyle.BackColor = Color.FromArgb(255, 249, 237) 
        e.CellStyle.Font = New Font(e.CellStyle.Font.FontFamily, 16, FontStyle.Regular) 
       Else 
        e.CellStyle.BackColor = Color.FromArgb(255, 255, 255) 
        e.CellStyle.Font = New Font(e.CellStyle.Font.FontFamily, 15, FontStyle.Regular) 
       End If 
      End If 
     End If 

    Catch ex As Exception 
     WriteToLog(ex) 
    End Try 
End Sub 
Private Sub grdDetailsNew_CellPainting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles grdFruitDetailsNew.CellPainting 
    Try 

     If e.RowIndex > -1 AndAlso e.ColumnIndex > -1 Then 
      If e.ColumnIndex = 2 AndAlso grdDetailsNew.Rows(e.RowIndex).Cells("Type").Value = 1 Then 
       e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 
      End If 
     End If 

    Catch ex As Exception 

    End Try 
End Sub 

答えて

1

セルの書式設定イベントにe.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenterを追加するだけです。それをペイントイベントから削除します。

例:

Private Sub DataGridView1_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting 
    Dim type = CInt(CType(sender, DataGridView).Rows(e.RowIndex).Cells("type").Value) 
    If type = 1 andalso e.ColumnIndex = 1 Then e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 
End Sub 
+0

いいえ、完全な行が、私は、行タイプのフィールドを検索し、最初の列を再フォーマット例を追加しました特定の条件 – DareDevil

+0

上の特定の列に実際に両方= 1 – FloatingKiwi

+1

あればペイントイベントに正しいコードがあるようです。代わりにセルの書式設定ハンドラに移動してみてください。 – FloatingKiwi

関連する問題