Private lblblocks(1 To 225) As LabelPrivate Sub Form_Load()Dim i As Integer,j As IntegerFor i = 1 To 15 For j = 1 To 15 Dim arrnum As Integer arrnum = (i - 1) * 15 + j Load lblblocks(arrnum) With lblblocks(arrnum) .WIDth = 1000 .Height = 1000 .top = (i - 1) * 1000 .left = (j - 1) * 1000 .Visible = True .Backcolor = Int(Rnd(1) * 255) + &H100 * Int(Rnd(1) * 255) + &H10000 * Int(Rnd(1) * 255) End With Next jNext iEnd Sub
我使用背景颜色来查看我的所有标签盒.此代码不起作用.我收到错误“对象变量或未设置块变量”.有帮助吗?我不知道出了什么问题.我想将标签盒保存在一个控制数组中,我知道如何在不将其作为控制数组的情况下进行 *** 作.
解决方法 科迪格雷在评论中说得对.我不相信你只能在VB6中的代码中动态创建一个控制数组.您必须在窗体上放置一个控件实例,并为其指定一个Index属性值为零.这将创建一个只有一个元素的控制数组,索引为零.然后,您可以修改代码以生成所需的结果,如下所示:Private Sub Form_Load() Dim i As Integer Dim j As Integer For i = 0 To 14 For j = 0 To 14 Dim tileIDx As Integer tileIDx = i * 15 + j 'If the tile index is zero,we already have that control,'so there's no need to load new instance. Otherwise,use the 'Load method to create a new control in the array with the 'specifIEd index. If tileIDx > 0 Then Load lblTile(tileIDx) End If With lblTile(tileIDx) .WIDth = 1000 .Height = 1000 .top = i * 1000 .left = j * 1000 .Visible = True .Backcolor = Int(Rnd(1) * 255) + &H100 * Int(Rnd(1) * 255) + &H10000 * Int(Rnd(1) * 255) End With Next NextEnd Sub
如注释中所述,您不需要在数组索引零处加载另一个控件实例,因为您在设计时就这样做了.我还从零开始迭代我的数组,以便稍微更容易地计算索引.
总结以上是内存溢出为你收集整理的vb6 – 在代码中创建控件数组全部内容,希望文章能够帮你解决vb6 – 在代码中创建控件数组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)