vb中我建立了90个label(内容都不同的),然后又搞了个数组 l(89),怎样让一个数组同一个label联系上?谢谢!
我试过 
l(0)=label1 : l(1)=label2……
但是这样输下去我就发神经了...     救救我啊,谢谢

解决方案 »

  1.   

    你建立一个label数组不就好了
      

  2.   

    请问怎样建立?   是那些label已经搞好了的,如果建立一个数组是不是不要之前的?
      

  3.   

    你往窗体上拖一个label,然后 copy paste,这个时候就有对话框问你要不要创建数组,选yes
    然后就创建了
      

  4.   

    将你若干个label控件那么属性都改为LabelX 即可,改第二个的时候会提示你使用创建控件数组,你要回答是。(更简单的是,将所有的label控件选择上(鼠标在Form上按左键拖拉)然后改Name属性,这个方法Name属性不知道有没有出来,你试一下)这样,你不需要另外创建数组了,只要labelx(i)就可以进行访问
      

  5.   

    如果不想用LABEL数组,可以用Script Control控件。可以把你的labelX当做一个字符串处理。就可以用循环了。不过,还是用数组的好。呵呵。
      

  6.   

    '先在属性窗口里面将Label1的Index改为0
    Dim L(0 to 89) as string
    Dim i as Long
    L(0)="Label00"
    Label1(0).Caption=L(0)
    for i=1 to 89
     Load Label1(i)
     L(i)="Label"+Right("0"+CStr(i),2)
     Label1(i).Caption=L(i)
     Label1(i).Top=i\10*150
     Label1(i).Left=60+(i mod 10)*960
     Label1(i).Zorder 0
    next
      

  7.   

    你先说说你为啥一定要用90个Label?然后我再告诉你怎么办。
      

  8.   


    其实我是做一个自己玩的象棋棋谱, 这样做好像很笨,用90个picturebox铺满棋盘,然后编写他们的点击事件,然后这样可以让棋子走到想要的位置,这样顺便定位棋盘
    但是由于时间关系,又不知道有什么方法,我真的一个个写了o(-"-)o
      

  9.   


    你为啥不直接用Label或者PictureBox在窗体上定位当棋子呢?
      

  10.   

    楼主最初的‘方案策划’就没搞好,给自己带来麻烦啊…………  其实用控件数组是最好的解决方法,你把那些 Label 全部重新更改控件名,改变成控件数组也不是太费事,相信后面的事件代码也比较好处理。  不过就事论事,楼主的问题这样可以解决:
    Option Explicit
     
    '假设你的窗口只有那90个Label
    '或你需要处理的那90个Label是最后按顺序画上去的
    Private arrLab(89) As LabelPrivate Sub Command1_Click()
       Dim i&, objTemp As Object
       i = 0
       For Each objTemp In Me.Controls
          If (Left$(objTemp.Name, 5) = "Label") Then
             Set arrLab(89 - i) = objTemp     '建立关联
             i = i + 1
          End If
       Next
       '检查一下结果
       For i = 0 To 89
          Debug.Print i, arrLab(i).Left; arrLab(i).Top, arrLab(i).Caption
       Next
    End Sub楼主参考一下吧。
      

  11.   

    直接用Label控件数组就OK啊
    控件建立后再对应数组就比较繁琐了
      

  12.   

    那90个picturebox只是用来给棋子做行走时候的定位,另外还有32个picturebox来当棋子....
    我当初将picturebox复制、粘贴不知道为什么没有提示建立数组的... - -
      

  13.   


    窗体坐标整除棋盘格子尺寸就是棋盘坐标。
    棋盘坐标乘以棋盘格子尺寸就是窗体坐标。
    把正方形PictureBox定位到窗体坐标减去1/2正方形PictureBox的尺寸,就可以让PictureBox中心对准窗体坐标。
    前提是你要将窗体的ScaleMode从twip改成pixel。
    一点不难啊!
    你为啥要用90个控件去定位呢?那个要活活累死人的!
      

  14.   

    汗,楼主真有毅力,PFPF- -!!其实以象棋来说的话,可以自己绘图,而不需要用那么多的Label控件.先定义一个结构,它用于管理棋子:type MYTYPE
        mX as long        '在棋盘上的坐标
        mY as long    mPic as long       '这个棋子的图片,你做一个包含所有象棋图片的图片,再用索引去决定是哪个
        mSel as boolean    '是否被选中,点击棋子时需要绘出被选择的效果
    end type然后定义一个数组,这个数组里就是棋子的数据:dim mData() as MYTYPE接下来,首先绘制棋盘,然后根据坐标绘制棋子就行了.鼠标点击处能得到当前的坐标,则使用这个坐标去遍历这个数组,看看与哪个坐标的距离是在棋子圆周内,则说明点击了这个棋子.啊,大约就是这样的思路吧,代码应该能少很多:)睡觉睡觉.