Написать приложение "Школьный журнал" - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

как можно составить журнал оценок на vb.net DataGridview Помогите Пожалуйста

Решение задачи: «Написать приложение "Школьный журнал"»

textual
Листинг программы
Imports System.IO
Imports System.Text
Public Class Form3
    Private txtName As String
    Private delim As String
    Private classReg(,) As String
    Private title() As String
    Private nn, mm As Integer
    Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        txtName = Path.Combine(Application.StartupPath, "classRegister2015.csv")
        delim = ";"
        If File.Exists(txtName) Then
            readData()
            setDGV()
        End If
    End Sub
    Private Sub readData()
        Try
            Dim rr() As String = File.ReadAllLines(txtName, Encoding.Default)
            nn = rr.Length
            title = rr(nn - 1).Split(delim)
            mm = title.Length
            nn -= 1
            ReDim Preserve rr(nn - 1)
            ReDim classReg(nn - 1, mm - 1)
            For i = 0 To nn - 1
                Dim cc() As String = rr(i).Split(delim)
                For j = 0 To mm - 1
                    classReg(i, j) = cc(j)
                Next
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub setDGV()
        Try
            With DataGridView1
                .ColumnCount = mm
                For j = 0 To mm - 1
                    .Columns(j).HeaderText = title(j)
                Next
                For i = 0 To nn - 1
                    .Rows.Add(New DataGridViewRow())
                    For j = 0 To mm - 1
                        .Rows(i).Cells(j).Value = classReg(i, j)
                    Next
                Next
                .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
                .Columns(0).AutoSizeMode = DataGridViewAutoSizeColumnMode.None
                .Columns(0).Width = 150
                .Columns(0).Frozen = True
                .Columns(0).DividerWidth = 3
                .EnableHeadersVisualStyles = False
                .ColumnHeadersDefaultCellStyle.BackColor = Color.LightYellow
                .ColumnHeadersDefaultCellStyle.Font = New Font(.Font.FontFamily, .Font.Size, FontStyle.Bold)
                .ColumnHeadersDefaultCellStyle.Padding = New Padding(5, 5, 0, 5)
                .ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
                .Columns(0).DefaultCellStyle.BackColor = Color.LightYellow
                .TopLeftHeaderCell.Value = "8A"
            End With
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        'New Date
        With DataGridView1
            .Columns.Add("col" & nn.ToString, Format(Now, "d.MM"))
            .FirstDisplayedCell = .Rows(0).Cells(.Columns.Count - 1)
        End With
    End Sub
    Private Sub DataGridView1_CellFormatting(sender As System.Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
        'двойки отмечаем красным
        If IsNumeric(e.Value) Then
            If CInt(e.Value) < 3 Then
                e.CellStyle.ForeColor = Color.Red
            End If
        End If
    End Sub
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        'Save
        With DataGridView1
            nn = .Rows.Count - 1
            mm = .Columns.Count
            ReDim classReg(nn, mm - 1)
            For i = 0 To nn - 1
                For j = 0 To mm - 1
                    classReg(i, j) = .Rows(i).Cells(j).Value
                Next
            Next
            For j = 0 To mm - 1
                classReg(nn, j) = .Columns(j).HeaderText
            Next
        End With
        Dim s As String = ""
        Dim ss(nn) As String
        For i = 0 To nn
            s = ""
            For j = 0 To mm - 1
                s &= classReg(i, j) & delim
            Next
            ss(i) = s.Substring(0, s.Length - delim.Length)
        Next
        File.WriteAllLines(txtName, ss, Encoding.Default)
    End Sub
End Class

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы