1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| Public Class frmDataGridView
Private Sub frmDataGridView_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TableForDgv()
'PlusDeTri()
End Sub
Dim dtFromGrid As New DataTable()
Dim bs As New BindingSource
Private Sub TableForDgv()
Dim ColDate As DataColumn = New DataColumn()
ColDate.ColumnName = "Date"
dtFromGrid.Columns.Add(ColDate)
Dim ColHeure As DataColumn = New DataColumn()
ColHeure.ColumnName = "Heure"
dtFromGrid.Columns.Add(ColHeure)
Dim ColDegre As DataColumn = New DataColumn()
ColDegre.ColumnName = "Degre"
dtFromGrid.Columns.Add(ColDegre)
Dim ColEven As DataColumn = New DataColumn()
ColEven.ColumnName = "Evenement"
dtFromGrid.Columns.Add(ColEven)
' équivalent fichier Dim texte As String = "28/02/2013=!=23:52:11=!=MANU=!=Ouverture de l application" & vbCrLf & "28/02/2013=!=23:52:28=!=ERROR=!=Initialise la carte de comptage" & vbCrLf & "28/02/2013=!=23:52:28=!=AUTO=!=Initialise la carte ProfilBUS" & vbCrLf & "28/02/2013=!=23:52:31=!=MANU=!=Ouverture de la fenetre gestion "
Dim lineseparation As String = Environment.NewLine
Dim columnseparation() As String = {"=!="}
Dim Elements As String() = Split(System.IO.File.ReadAllText("D:\data\log.txt"), lineseparation)
For Each col As DataGridViewColumn In DataGridView1.Columns
dtFromGrid.Columns.Add(col.Name)
Next
For i As Integer = 0 To Elements.Length - 1
dtFromGrid.Rows.Add(Elements(i).Split(columnseparation, StringSplitOptions.None))
Next
bs.DataSource = dtFromGrid
With DataGridView1
.DataSource = bs
.Columns("degre").HeaderText = "degré"
.Columns("evenement").HeaderText = "évènement"
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
End With
End Sub
Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
'Récupération de la ligne correspondante dans la source de données.
Dim row As DataRowView = CType(DataGridView1.Rows(e.RowIndex).DataBoundItem, DataRowView)
If Not row Is Nothing Then
If Not row("Degre") Is DBNull.Value Then
Dim degr As String = CStr(row("Degre"))
Dim cBackColor As Color = Color.White
Dim cForColor As Color = Color.Black
Dim font As New Font(DataGridView1.DefaultCellStyle.Font.FontFamily, 10)
Select Case degr
Case "AUTO"
cBackColor = Color.Green
cForColor = Color.White
Case "MANU"
cBackColor = Color.Yellow
cForColor = Color.DarkBlue
Case "ERROR"
cBackColor = Color.Red
cForColor = Color.White
End Select
Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.BackColor = cBackColor
Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = cForColor
Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.Font = font
End If
End If
End Sub
Private Sub btnAuto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAuto.Click
bs.Filter = "Degre = 'AUTO'"
End Sub
Private Sub btnManu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnManu.Click
bs.Filter = "Degre = 'MANU'"
End Sub
Private Sub btnError_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnError.Click
bs.Filter = "Degre = 'ERROR'"
End Sub
Private Sub DataGridView1_ColumnHeaderMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
If e.Button = MouseButtons.Right Then DataGridView1.Columns(e.ColumnIndex).HeaderText = InputBox("Nom de la colonne", "Titre colonne")
End Sub
Private Sub PlusDeTri()
For Each _col As DataGridViewColumn In DataGridView1.Columns
_col.SortMode = DataGridViewColumnSortMode.NotSortable
Next
End Sub
Private Sub DataGridView1_CellValidating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating
'Si la valeur de la cellule n'est pas validée, donnez à la propriété Cancel la valeur true. De cette manière, le contrôle DataGridView empêche le curseur de quitter la cellule.
' donc si le compte existe (égalité vrai, à true) valide la cellule (par le not)
If e.ColumnIndex = 2 Then e.Cancel = Not (e.FormattedValue.ToString = "Compte reconnu et existant")
End Sub
End Class |
Partager