Какой компонент выбрать для отображения таблицы - Visual Basic .NET

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

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

Какой инструмент для подобной таблицы лучше использовать, к сожалению datagridview не подойдет.

Решение задачи: «Какой компонент выбрать для отображения таблицы»

textual
Листинг программы
Public Class CustomDataGridView
    Inherits DataGridView
    Sub New()
        ResizeRedraw = True
        DoubleBuffered = True
        ColumnHeadersVisible = False
        RowHeadersVisible = False
    End Sub
    Private Sub CustomDataGridView_CellPainting(sender As Object, e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles Me.CellPainting
        Try
            Dim delmiter As String = "NONE"
            If e.Value.ToString.Contains("-") Then
                delmiter = "-"
            ElseIf e.Value.ToString.Contains("+") Then
                delmiter = "+"
            End If
            If delmiter <> "NONE" Then
                Dim _value As String = e.Value.ToString.Split(delmiter)(0).ToString
                Dim bonus As String = (delmiter & e.Value.ToString.Split(delmiter)(1)).ToString
                Dim _valueWidth As Integer = e.Graphics.MeasureString(_value, e.CellStyle.Font, e.CellBounds.Width).Width
                Dim bonusWidth As Integer = e.Graphics.MeasureString(bonus, e.CellStyle.Font, e.CellBounds.Width).Width
 
                e.Handled = True
                e.PaintBackground(e.CellBounds, True)
                e.Graphics.DrawString(_value, e.CellStyle.Font, Brushes.Black, e.CellBounds.X + 2, e.CellBounds.Y + 5)
                Select Case delmiter
                    Case "-" : e.Graphics.DrawString(bonus, New Font(e.CellStyle.Font.FontFamily, e.CellStyle.Font.SizeInPoints - 1, e.CellStyle.Font.Style), _
                     Brushes.Red, e.CellBounds.X + _valueWidth + 2, e.CellBounds.Y + 1)
                    Case "+" : e.Graphics.DrawString(bonus, New Font(e.CellStyle.Font.FontFamily, e.CellStyle.Font.SizeInPoints - 1, e.CellStyle.Font.Style), _
                     Brushes.Green, e.CellBounds.X + _valueWidth + 2, e.CellBounds.Y + 1)
                End Select
            End If
        Catch : End Try
    End Sub
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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