2011-12-23 42 views
-1

我正在開發vb.net中的LEDBOARD用戶控件。我也做了它。實際上它花費了太多時間來加載。在同一個應用程序中,我使用了3000個標籤一個標籤控件數組,但不耗時。在vb.net我正在做同樣的事情,但它需要花費太多時間來加載3000個標籤。 是否有任何其他方式(任何控制或任何自定義控制)來繪製輸入文本(任何字體樣式),圖像像下面的圖像 它看起來像下面enter image description herevb.net LED BOARD DISPLAY用戶控件

+0

可能重複http://stackoverflow.com/questions/8601700/vb-net-taking-too-much-time載入用戶控制包含標籤控制數組) – 2011-12-23 10:15:36

+0

你[已經問過這個問題](http://stackoverflow.com/questions/8601700/vb-net-taking-too-much-time-到的負載的用戶控制含標籤控制陣列)。如果你想包含更多的細節,你應該編輯這個問題來包含它們,而不是要求一個新的問題。 – 2011-12-23 10:15:56

+0

@CodyGray是的先生同樣的問題,但我想通過使用圖像來探索它,以便我可以更好地使用不同的想法來顯示相同​​的輸出 – 2011-12-23 10:26:22

回答

1

Control繼承從頭開始創建LedBoard控制,而不是使用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 
的[vb.net花費過多時間來加載用戶控制含有標籤控制陣列(
+0

+1。 – 2011-12-24 08:04:00

+0

注意:從'Control'繼承的當前解決方案的所有類都會自動出現在工具箱的頂部,您可以將它們拖到表單中。 – 2011-12-24 16:14:58

+0

謝謝Olivier Jacot-Descombes和cody灰色。其實我也是像你一樣來解決問題,輸出很像上面,但只有我沒有得到像塊一樣分開的線。在上面的圖片中有5條垂直線和1條水平線線 – 2011-12-26 05:56:09