标题:关于vb控件数组的位置排列
只看楼主
VB小白菜啊
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-5-1
结帖率:66.67%
已结贴  问题点数:20 回复次数:4 
关于vb控件数组的位置排列
刚接触vb半个月,请问怎么实现数组控件的位置以纵向100行,横向100行的排列

要求控件是picturebox,创建picturebox的数组,弄了一晚上,还是没弄出这个排列。😂有没有大神为我解惑的。

[此贴子已经被作者于2018-5-1 01:39编辑过]

搜索更多相关主题的帖子: vb 控件 数组 位置 排列 
2018-05-01 01:38
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
Dim i As Long
Dim x As Long, y As Long

x = Picb1(0).Left           '初始位置
y = Picb1(0).Top

Const 每行个数 = 100

For i = 1 To 9999
    Load Picb1(i)
    If i Mod 每行个数 = 0 Then       '计算位置,按是否换行分二种情况
        x = Picb1(0).Left
        y = Picb1(0).Top + Int(i \ 每行个数) * Picb1(0).Height + Screen.TwipsPerPixelY
    Else
        x = x + Picb1(0).Width + Screen.TwipsPerPixelY
    End If
   
    Picb1(i).Move x, y          '移动位置
    Picb1(i).Visible = True     '显示
    Picb1(i).Print i            '在里面显示一个序号
Next i

窗体上先放一个 PictureBox ,命名为 picb1 ,然后index 属性里写一个0
这个控件的位置决定了这个阵列的左上角位置,它的大小决定这个阵列每个控件的大小
每个控件之间 空一个 像素,如果不打算空,则把 Screen.TwipsPerPixelX、Screen.TwipsPerPixelY 这个值清掉。

----------------------------------
10000个控件,你有多么强大的CPU ?
你打算干什么用?难道不能在一个控件里完成??


[此贴子已经被作者于2018-5-1 09:48编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2018-05-01 09:41
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
不用那么复杂,简单的循环就可以
'假设你的图片大小为100*100
For i = 0 To 9999
 if i>0 then Load Load Picb1(i)'假设第一个数组标签已创建,后续的程序创建
 Picb1(i).left =  150 * (i mod 100) '横向控制,两个标签横向间隔50
 Picb1(i).top =  150 *(i \ 100)'纵向控制,两个标签纵向间隔50
next i
2018-05-01 10:37
VB小白菜啊
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-5-1
得分:0 
回复 2楼 风吹过b
........
是要对一张图片提取像素点和颜色,然后可以对图片的每个像素进行编辑,我原来的想法是做一万个控件,然后按照提取出来的像素点和颜色放进控件里面。
然后我发现,我太天真了。。。。。
于是在网上搜关于picturebox的资料,用point和Pset可以满足读取和写出,
捂脸,Pset是写出来了像素图了,然后却不知道怎么去编辑,用PSet编辑的话会变成是一个点,而不是对一块像素。(捂脸)。
2018-05-03 01:32
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:20 
用line语句试试 或者 用for控制
Private Sub Command1_Click()
  Picture1.BackColor = vbBlack '图片黑背景
  Picture1.DrawWidth = 10    '画线宽度
  Picture1.ForeColor = vbRed    '线颜色
  Picture1.Line (0,0)-(0, 5)  '画线1
  Picture1.Line (0, 0)-(5, 0) '画线2
End Sub
2018-05-03 09:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486528-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017966 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved