首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么把Form1下控件组显示分别到Form2、Form3显示一部分

2012-12-19 
如何把Form1上控件组显示分别到Form2、Form3显示一部分?本帖最后由 bhbh202 于 2011-08-03 08:59:17 编辑1、

如何把Form1上控件组显示分别到Form2、Form3显示一部分?
本帖最后由 bhbh202 于 2011-08-03 08:59:17 编辑 1、我的读取外部硬件相关的数据的代码在Form1上,原本全部可以在Form1上控件组显示。如:Text1(i)数组中有32个成员。
问:如何把Form1上Text1(i)显示组一部分到Form2上显示?
要求:Text1(i)控件组在Form1上显示Text1(0)。。。。。到Text1(5)个,在Form2上显示Text1(6)。。。。。到Text1(10),在Form3上显示Text1(11)。。。。。到Text1(31)
[解决办法]
把读取到的数据放在全局变量里,你原来在Form1中能怎么显示的,那么,同样就可以在Form2和Form3中显示
[解决办法]

引用:
把读取到的数据放在全局变量里,你原来在Form1中能怎么显示的,那么,同样就可以在Form2和Form3中显示

原来在Form1中都可以显示的,现在想分一部分到Form2、Form3、怎么分?写个例子好吗?我是刚刚学习不久!
[解决办法]
你把原来显示的代码贴上来
[解决办法]
引用:
把读取到的数据放在全局变量里,你原来在Form1中能怎么显示的,那么,同样就可以在Form2和Form3中显示

对,用全局变量
[解决办法]
引用:
引用:
把读取到的数据放在全局变量里,你原来在Form1中能怎么显示的,那么,同样就可以在Form2和Form3中显示

原来在Form1中都可以显示的,现在想分一部分到Form2、Form3、怎么分?写个例子好吗?我是刚刚学习不久!

兄弟啊!早就试过了!是不行啊!
[解决办法]
引用:
引用:

把读取到的数据放在全局变量里,你原来在Form1中能怎么显示的,那么,同样就可以在Form2和Form3中显示

对,用全局变量

写个例子好嘛?我也想到过全局变量,Form1、2、3分布怎么写?但是不会写,我是刚刚学习不久!


[解决办法]
用全局变量的数组将你读出来的数据全部存放起来啊,然后在每个窗体将需要的数据赋给text就行了。
public strhardware() as string'全局数组变量    
public hardwareNo as integer '读第几个硬件
在FORM1里给strhardware()赋值:redim strhardware(i)'这里的i是你要读取的硬件数量(此时数组下标为1)  strhardware(1)="硬件1"  strhardware(2)="硬件2"  strhardware(3)="硬件3"   strhardware(4)="硬件4"   strhardware(5)="硬件5"   strhardware(6)="硬件6"
然后在form1里给TEXT1(j)赋值,在form2里给TEXT1(m)赋值,在form3里给TEXT1(n)赋值
form1:hardwareNo=1 '读第一个硬件
        for i=0 to text1.ubound
           text1(i).text=strhardware(i+hardwareNo)
           hardwareNo=hardwareNo+1
       next i
form2:for i=0 to text1.ubound
           text1(i).text=strhardware(i+hardwareNo)
           hardwareNo=hardwareNo+1
       next i
form3:for i=0 to text1.ubound
           text1(i).text=strhardware(i+hardwareNo)
           hardwareNo=hardwareNo+1
       next i
[解决办法]
引用:
用全局变量的数组将你读出来的数据全部存放起来啊,然后在每个窗体将需要的数据赋给text就行了。
public strhardware() as string'全局数组变量  
public hardwareNo as integer '读第几个硬件
在FORM1里给strhardware()赋值:redim strhardware(i)'这里的i是你要读取的硬件数量(此时数组下标为1) st……

看晕了!怎么出来那么多硬件出来?
------解决方案--------------------


引用:
引用:
用全局变量的数组将你读出来的数据全部存放起来啊,然后在每个窗体将需要的数据赋给text就行了。
public strhardware() as string'全局数组变量
public hardwareNo as integer '读第几个硬件
在FORM1里给strhardware()赋值:redim strhardware(i)'这里的i是你要读取的……

读硬件这块你不要写,怎么把我的Form1分一部分到Form2、Form3、怎么分?写个例子就好!感谢!
[解决办法]
????
给你的是个例子  
你举一反三就是了啊,下面那些代码不是给每个窗体的TEXT赋值是在做什么呢,
不是用全局变量的数组读出来了吗?直接赋给其他窗体的TEXT就是了啊
你也没有必要在FORM2窗体的TEXT控件下标从6开始,依然可以从0开始
[解决办法]
引用:
????
给你的是个例子  
你举一反三就是了啊,下面那些代码不是给每个窗体的TEXT赋值是在做什么呢,
不是用全局变量的数组读出来了吗?直接赋给其他窗体的TEXT就是了啊
你也没有必要在FORM2窗体的TEXT控件下标从6开始,依然可以从0开始

我的界面要求就是要FORM2窗体的TEXT控件下标从6开始
[解决办法]
晕了
那你把下面代码里FORM2里的i=0 改为你的下标就行了塞
form1:hardwareNo=1 '读第一个硬件
  for i=text1.Lbound to text1.ubound
  text1(i).text=strhardware(i+hardwareNo)
  hardwareNo=hardwareNo+1
  next i
form2:for i=text1.Lbound to text1.ubound
  text1(i).text=strhardware(i+hardwareNo)
  hardwareNo=hardwareNo+1
  next i
form3:for i=text1.Lbound to text1.ubound
  text1(i).text=strhardware(i+hardwareNo)
  hardwareNo=hardwareNo+1
  next i 
 

[解决办法]
写错了
form1:
  hardwareNo=1 '读第一个硬件
  for i=text1.Lbound to text1.ubound
      text1(i).text=strhardware(hardwareNo)
      hardwareNo=hardwareNo+1
  next i
form2:
  for i=text1.Lbound to text1.ubound
      text1(i).text=strhardware(hardwareNo)
      hardwareNo=hardwareNo+1
  next i
form3:
  for i=text1.Lbound to text1.ubound
      text1(i).text=strhardware(i+hardwareNo)
      hardwareNo=hardwareNo+1
  next i  
 

[解决办法]
form3里写错了
form3:
  for i=text1.Lbound to text1.ubound
  text1(i).text=strhardware(hardwareNo)
  hardwareNo=hardwareNo+1
  next i   

[解决办法]
引用:
form3里写错了
form3:
  for i=text1.Lbound to text1.ubound
  text1(i).text=strhardware(hardwareNo)
  hardwareNo=hardwareNo+1
  next i

我的要显示的控件组从0到23,原来Text1控件组23个成员在form1上显示正常,我现在要分3个到form1上,分6个到form2上,分15个到form3上显示!
以下是我在form1上显示代码,现在怎么把控件组23个成员各自分配到3个界面显示!你的这些我确实看不懂(strhardware(3)="硬件)
Case 3 'T
                 For I = 0 To 23
                     Text1(I) = Val("&H" + Mid(getData, I * 4 + 3, 2) + Mid(getData, I * 4 + 1, 2))


                 Next I
[解决办法]

引用:
引用:
form3里写错了
form3:
for i=text1.Lbound to text1.ubound
text1(i).text=strhardware(hardwareNo)
hardwareNo=hardwareNo+1
next i

我的要显示的控件组从0到23,原来Text1控件组23个成员在form1上显示正常,我现在要分3个到f……

某窗体上的一个控件只能在它自身容器内创建控件数组,离开这一容器,控件数组只能另外建立.

[解决办法]
引用:
某窗体上的一个控件只能在它自身容器内创建控件数组,离开这一容器,控件数组只能另外建立.


确实如此,
我试图这么跨窗体加载控件,但是只能在已有控件的容器里加载

两个窗体,form1和form2,form1上有一个text1(0)
Private Sub Form_Load()
Load Form1.Text1(1)
Form1.Text1(1).Text = "123"
Form1.Text1(1).Top = Form1.Text1(0).Top
Form1.Text1(1).Left = Form1.Text1(0).Left + Form1.Text1(0).Width + 300
Form1.Text1(1).Visible = True

Dim txt As TextBox
Set txt = Form1.Text1(2)
Load txt
txt.Top = 0
txt.Visible = True
End Sub

[解决办法]
引用:
某窗体上的一个控件只能在它自身容器内创建控件数组,离开这一容器,控件数组只能另外建立.

这容器就是窗体本身.
[解决办法]
我真的很晕
你在其它窗体里也创建TEXT数组控件,然后将strhardware数组里的值相应的赋给其它窗体里的text控件不就行了吗?
public strhardware() as string'全局数组变量   
public hardwareNo as integer '读第几个硬件(全局变量)

FORM1里先给数组赋值(全局数组变量),然后再将strhardware相应的值给FORM1里的text
For I = 0 To 23
  strhardware(I+1) = Val("&H" + Mid(getData, I * 4 + 3, 2) + Mid(getData, I * 4 + 1, 2))
Next I

hardwareNo=1 '读第一个硬件
for i=text1.Lbound to text1.ubound
  text1(i).text=strhardware(hardwareNo)
  hardwareNo=hardwareNo+1
next i
FORM2窗体:
for i=text1.Lbound to text1.ubound
  text1(i).text=strhardware(hardwareNo)
  hardwareNo=hardwareNo+1
next i
FORM3窗体:
for i=text1.Lbound to text1.ubound
  text1(i).text=strhardware(hardwareNo)
  hardwareNo=hardwareNo+1
next i
你如果还看不懂我就没办法了
[解决办法]
楼上代码为form2的load过程
[解决办法]
引用:
我真的很晕
你在其它窗体里也创建TEXT数组控件,然后将strhardware数组里的值相应的赋给其它窗体里的text控件不就行了吗?
public strhardware() as string'全局数组变量   
public hardwareNo as integer '读第几个硬件(全局变量)

FORM1里先给数组赋值(全局数组变量),然后再将strhardware相应的值给……


这样就可以了,在不同的容器了是不可能建立连续的数组控件的,赋值的时候按顺序来赋就行

热点排行