CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

关于动态增加(M行N列个)控件。

楼主tutuxu(tutuxu)2006-03-16 10:45:03 在 VB / 基础类 提问

 
  现在想动态增加控件,   一共生成(M行N列个)控件,N都是可变值  
   
  先在窗体上放一个Label1控件,设置它的Index属性为0  
  然后  
  Private   Sub   Command1_Click()  
          Load   Label1(1)  
          Load   Label1(2)  
          ......  
          Load   Label1(M)  
  End   Sub  
   
  这样能生成一行或者一列  
  可是生成(M行N列),如何处理,并且Index可以方便的进行(行列)循环  
   
  谢谢了  
  问题点数:100、回复次数:6Top

1 楼tztz520(午夜逛街)回复于 2006-03-16 11:14:15 得分 50

Private   Sub   Command1_Click()  
  Dim   i   As   Integer,   j   As   Integer  
  Dim   m   As   Integer,   n   As   Integer  
  Dim   nTop   As   Integer  
  Dim   nLeft   As   Integer  
  Dim   cIndex   As   Integer  
   
  nLeft   =   0  
  nTop   =   0  
  m   =   8   '行  
  n   =   7   '列  
   
  For   i   =   1   To   m  
      nTop   =   0  
      For   j   =   1   To   n  
              cIndex   =   i   *   n   +   j   -   n  
              Load   Label1(cIndex)  
              Label1(cIndex).Move   nLeft,   nTop  
              nTop   =   nTop   +   Label1(0).Height   +   30  
              Label1(cIndex).Visible   =   True  
              Label1(cIndex).Caption   =   "控件"   &   cIndex  
      Next   j  
      nLeft   =   nLeft   +   Label1(0).Width   +   50  
  Next   i  
  End   SubTop

2 楼tztz520(午夜逛街)回复于 2006-03-16 11:28:45 得分 0

'横排  
   
  Private   Sub   Command1_Click()  
  Dim   i   As   Integer,   j   As   Integer  
  Dim   m   As   Integer,   n   As   Integer  
  Dim   nTop   As   Integer  
  Dim   nLeft   As   Integer  
  Dim   cIndex   As   Integer  
   
  nLeft   =   0  
  nTop   =   0  
  m   =   8   '列  
  n   =   7   '行  
   
  For   i   =   1   To   n  
      nLeft   =   0  
      For   j   =   1   To   m  
              cIndex   =   i   *   m   +   j   -   m  
              Load   Label1(cIndex)  
              Label1(cIndex).Move   nLeft,   nTop  
              nLeft   =   nLeft   +   Label1(0).Width   +   50  
              Label1(cIndex).Visible   =   True  
              Label1(cIndex).Caption   =   "控件"   &   cIndex  
      Next   j  
      nTop   =   nTop   +   Label1(0).Height   +   30  
  Next   i  
   
  End   SubTop

3 楼AnnaBear(淡淡)回复于 2006-03-16 11:42:39 得分 5

tztz520(午夜逛街)//  
  厉害  
  我学会了  
  谢谢^_^Top

4 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-16 11:44:34 得分 45

Dim   myImg()   As   Image  
  Private   Const   M   =   5   '行  
  Private   Const   N   =   4   '列  
  Private   Const   ctlWidth   =   1000  
  Private   Const   ctlHeight   =   375  
   
  Private   Sub   Command1_Click()  
          ReDim   myImg(1   To   M   *   N)  
          Dim   i%  
          For   i   =   1   To   M   *   N  
                  Set   myImg(i)   =   Form1.Controls.Add("vb.Image",   "img"   &   i   &   "")  
                  myImg(i).Width   =   ctlWidth:   myImg(i).Height   =   ctlHeight  
   
                  myImg(i).Left   =   100   +   ctlWidth   *   (i   Mod   N)   '   lTmp  
                  myImg(i).Top   =   40   +   ctlHeight   *   (i   Mod   M)  
                  myImg(i).Visible   =   True  
                  myImg(i).BorderStyle   =   1  
          Next  
  End   SubTop

5 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-16 11:45:41 得分 0

Dim   myImg()   As   Image  
  Private   Const   M   =   5   '行  
  Private   Const   N   =   4   '列  
  Private   Const   ctlWidth   =   1000   '宽  
  Private   Const   ctlHeight   =   375   '高  
   
  Private   Sub   Command1_Click()  
          ReDim   myImg(1   To   M   *   N)  
          Dim   i%  
          For   i   =   1   To   M   *   N  
                  Set   myImg(i)   =   Form1.Controls.Add("vb.Image",   "img"   &   i   &   "")  
                  myImg(i).Width   =   ctlWidth:   myImg(i).Height   =   ctlHeight  
                  myImg(i).Left   =   100   +   ctlWidth   *   (i   Mod   N)  
                  myImg(i).Top   =   40   +   ctlHeight   *   (i   Mod   M)  
                  myImg(i).Visible   =   True  
                  myImg(i).BorderStyle   =   1  
          Next  
  End   Sub  
   
  Top

6 楼tutuxu(tutuxu)回复于 2006-03-16 13:18:04 得分 0

谢谢!  
  Top

相关问题

  • 怎么将一个m*n列的数据放在一个动态创建的ADOQuery控件中?
  • 如何动态创建n个image控件阿,谢谢了
  • 如何动态删除控件数组,如PictureBox[n]?
  • 怎样动态创建n多个控件,并且编程一个动态添加控件的事件
  • 请问如何动态生成n个控件?n是由数据库里读出的.
  • 动态控件parent问题
  • 动态创建控件
  • 动态添加控件
  • 动态添加控件
  • 有关动态控件

关键词

  • 控件
  • integerdim
  • cindex
  • ntop
  • label1
  • 行n列
  • nleft
  • intege
  • load
  • private sub command

得分解答快速导航

  • 帖主:tutuxu
  • tztz520
  • AnnaBear
  • faysky2

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo