2011-12-23 38 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