-1

私はvb.netでLEDBOARDユーザーコントロールを開発しています。私もそれを行いました。実際にはロードに時間がかかりすぎます。vb6同じアプリケーションでは、ラベルコントロールアレイを使用して3000ラベルをロードしていますが、時間はかかりません。vb.net私も同じことをしていますが、3000枚のラベルをロードするのに時間がかかりすぎています。入力テキスト(任意のフォントスタイル)、下の画像のような画像を描画する他の方法(任意のコントロールまたは任意のカスタムコントロール)はありますかここに画像の説明を入力してください

4

1 に答える 1

1

ControlUserControl を使用して大量のラベルを追加する代わりに、から継承して LedBoard コントロールをゼロから作成します。

私が言いたいことを示すために、ちょっとしたテストをしました。ニーズに合わせてロジックを調整する必要があります。

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
于 2011-12-23T19:34:54.723 に答える