vb.net LED BOARD DISPLAY пользовательский контроль - PullRequest
0 голосов
/ 23 декабря 2011

Я занимаюсь разработкой пользовательского элемента управления LEDBOARD на vb.net. Я тоже это сделал. На самом деле загрузка занимает слишком много времени. В том же приложении vb6 я загружаю 3000 этикеток с помощью массива управления этикетками. но не отнимает много времени. В vb.net Я делаю то же самое, но загрузка 3000 меток занимает слишком много времени. Есть ли другой способ (любой элемент управления или любой пользовательский элемент управления) для рисования входного текста (любой стиль шрифта), изображение как на картинке ниже Похоже ниже enter image description here

1 Ответ

1 голос
/ 23 декабря 2011

Создайте свой элемент управления LedBoard с нуля, унаследовав от Control вместо использования UserControl и добавления тонн меток.

Я только что провел небольшой тест, чтобы показать вам, что я имею в виду.Вам придется адаптировать логику к вашим потребностям.

Public Class LedBoard
    Inherits Control

    Private _rand As Random = New Random()

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        e.Graphics.FillRectangle(Brushes.Black, 0, 0, Width, Height)

        Const nx As Integer = 40, ny As Integer = 25

        Dim w = CInt((Width - 1) / nx) - 1
        Dim h = CInt((Height - 1) / ny) - 1
        For x As Integer = 0 To nx - 1
            For y As Integer = 0 To ny - 1
                If _rand.NextDouble() < 0.8 Then
                    e.Graphics.FillRectangle(Brushes.Red, x * (w + 1) + 1, y * (h + 1) + 1, w, h)
                End If
            Next
        Next

    End Sub

End Class
...