精华内容
下载资源
问答
  • VB 控件数组计算器实例,练习控件数组的使用并熟悉VB编程界面
  • VB 控件数组画图.rar

    2019-07-10 09:37:47
    VB 控件数组画图,每次输出新图形,前面的清除,可以画直线、矩形、圆。具体的代码操作,请看如下:  Private Sub Form_Load()  Picture1.Scale (0, 0)-(10, 10) '设置坐标系  End Sub  Private Sub Command1_...
  • VB 控件数组画图实例

    热门讨论 2010-06-07 14:34:38
    VB 控件数组画图实例 VB 控件数组画图实例 VB 控件数组画图实例
  • VB控件数组生成国际象棋棋盘,VB利用数组程序生成国际象棋的棋盘程序,如果你对使用VB编写游戏感兴趣,那么这个小程序可能会对你有用处。
  • 精彩编程与编程技巧-动态加入控件到VB控件数组中 ...
  • VB控件数组的操作技巧(混合文本)

    千次阅读 2011-07-20 23:47:46
    2011-3-22 9:31:00 VB控件数组的操作技巧 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 控件数组有在设计时设置好的,也有在运行中创建的。控件数组一方面使得程序简洁、令代码易于维护,另一方面能使...

    2011-3-22 9:31:00

     

    VB控件数组的操作技巧
    ━━━━━━━━━━━━━━━━━━━━━━━━━━

        控件数组有在设计时设置好的,也有在运行中创建的。控件数组一方面使得程序简洁、令代码易于维护,另一方面能使程序具有灵活性。可见,科学地利用控件数组可使编程工作的效率更高。本文是从笔者回答网友的问题中整理出来的,与原来的回答相比略有改动。希望这些"技巧"对大家有些帮助。如有不妥之处,敬请指教。

    一、运行中设置数组控件的属性

        设窗体上有若干个以 Command1 命名的命令按钮,现要求:点击其中一个按钮后,该按钮不可用,而其它的按钮均可用。以下几行代码可以实现这个要求,比一个一个的设置高效得多。

    Private Sub Command1_Click(Index As Integer)
        
    Dim As Integer '计数器
        
    Dim comNum As Integer '按钮的索引号
        
    comNum 0
        For To Command1.Count 1
            comNum comNum 1
            If comNum Command1.Count Then comNum 0
            Command1(comNum).Enabled True '让所有按钮可用
        
    Next
        
    Command1(Index).Enabled False '让被单击按钮不可用
    End Sub

    二、运行中添加和卸载数组控件

        窗体上已有一个文本框Text1,程序需要在运行时动态地创建若干文本框,可这样实现:
    1.首先,设计时给Text1的Index属性设置为"0",这一步很重要:有了索引号才能创建数组控件;
    2.编写代码:[之前请给工程添加两个命令按钮,Name属性取缺省值,Caption属性分别为:添加、卸载]

    Private Sub Command1_Click()
        
    Dim txtNum As Integer 'Text1的Index号
        
    Dim Num As Integer '赋给各TextBox的值
        
    txtNum '初值
        
    Num '初值
        
    Text1(0).Text "TextNum '第一个Text1的值
        
    Dim As Integer '计数器
        
    For To '添加五个TextBox
            
    txtNum txtNum 1
            Num Num 1
            Load Text1(txtNum'加载文本框
            
    Text1(txtNum).Top Text1(txtNum 1).Top 450 '设置位置
            
    Text1(txtNum).Text "TextNum '加载内容
            
    Text1(txtNum).Visible True '令其可见:不能漏
        
    Next
        
    Command1.Enabled False
        
    Command2.Enabled True
    End Sub

    Private Sub 
    Command2_Click()
        
    Dim As Integer, As Integer
        
    0
        For To Text1.Count 1
            N 1
            Unload Text1(N)
        
    Next
        
    Command1.Enabled True
        
    Command2.Enabled False
    End Sub

    三、给运行中添加的数组控件命名并编写事件

        其实例二已经给数组控件命了名,只是简单了些。本例将文件夹"F:\Txt"下的所有.txt的文件名作为菜单的Caption添加到菜单项里[请事先建立此文件夹并拷贝一些.txt文件,或者更改代码],当点击这些菜单,程序将调出Windows的记事本打开相应的文件。
        键入以下代码前请启动VB的菜单编辑器,建立一个父菜单项[Naem和Caption属性任意],然后在此父菜单下建立一个子菜单,Name属性为"mnuFiles",Caption属性为"没有文件"。

    Dim MyPath As String '路径名变量
    '添加并命名菜单过程
    Private Sub AddMenu()
        
    Dim MenuNum As Integer '菜单索引号变量
        
    Dim MyFiles As String '文件名变量
        
    MenuNum '初值
        
    MyFiles Dir(MyPath "*.txt"'仅查找文本文档
        
    If MyFiles "" Then Exit Sub '为空则退出过程
        
    mnuFiles(0).Caption MyFiles '给第一个菜单命名
        
    Do Until MyFiles ""
            MyFiles Dir()
            
    If MenuNum Then MenuNum 1
            MenuNum MenuNum 1
            Load mnuFiles(MenuNum'加载菜单
            
    mnuFiles(MenuNum).Visible True '设置为可见:不能漏
            
    mnuFiles(MenuNum).Caption MyFiles
            If mnuFiles(MenuNum).Caption "" Then Unload mnuFiles(MenuNum)
            
    '若菜单名为空则卸载掉
        
    Loop
    End Sub

    Private Sub 
    Form_Load()
        
    MyPath "F:\Txt\'规定路径
        
    Call AddMenu '执行添加菜单过程
    End Sub
    Private Sub 
    mnuFiles_Click(Index As Integer)
        
    Dim ret As String
        
    '用Windows的记事本打开文件:注意中间的空格不能少
        
    ret "Notepad.exe" MyPath mnuFiles(Index).Caption
        Shell ret, vbNormalFocus
    End Sub

    四、控件在窗体上的排列问题

        曾有一位网友两次问土人怎样才能在窗体上添加100万个文本框。呵呵,这要多大的显示器才能显示出来呀!不过,添加的数组控件多了,排列确实是个问题。下面的例子给窗体添加499个Label控件,连同事先绘制好的Index号定义为0的控件,总共有500个,能在窗体上从左到右、从上到下整齐地排列。程序运行时要花些许时间。

    Option Explicit
    Private Sub 
    Form_Load()
        
    Me.Width 6800
        Me.Height 6000
        Me.Caption "添加标签演示"
        With Label1(0)
            .
    Top 0
            .Left 120
            .Height 200
            .Width 300
            .Caption ""
        End With
        
    AddLabels
    End Sub
    Private Sub 
    AddLabels()
        
    Dim As Integer '计数器
        
    Dim Num As Integer 'Label的Index号
        
    Dim As Integer '判断是否满行
        
    Dim As Integer '行数计数器
        
    Num 0
        k 0
        n 0
        Label1(0).Caption Num 1
        For To 499
            Num Num 1
            Load Label1(Num'加载Label控件
            
    Select Case k
                Case 0
                    Label1(Num).Left Label1(Num 1).Left Label1(0).Width 20
                    If Num 20 Then 1: k n
                Case n
                    Label1(20).Left 120
                    Label1(20).Top Label1(0).Height n
                    Label1(Num).Top Label1(0).Height n
                    Label1(Num).Left Label1(Num 1).Left Label1(0).Width 20
                    If Num = (1) * 20 Then 1: k n
            End Select
            
    Label1(Num).Caption Num 1
            Label1(Num).Visible True
        Next
    End Sub


    一个问题的实例

    回答人的补充

    后面那代码,是告诉你什么情况用Select Case。
    那就不能这样做了,2个的index是不同的,改为:

    Private Sub Command1_Click()
        
    Dim i, r, s As Integer
        Dim 
    As Long
        For 
    To 2
            If Option1(i).Value Then
                Select Case 
    i
                    Case 0: s 100
                    Case 1: s 120
                    Case 2: s 160
                End Select
            End If
        Next
        For 
    To 3
            If Option2(i).Value Then
                Select Case 
    i
                    Case 0: r 3000
                    Case 1: r 3000 1.1
                    Case 2: r 3000 1.2
                    Case 2: r 3000 1.3
                End Select
            End If
        Next
        
    s
        Label1.Caption "根据所选房价应为:¥p
    End Sub

    1.将多个控件取相同的名称
    具体操作步骤是:

    1)绘制或选择要作为一个控件数组的所有控件,必须保证它们为同一类型的控件。
    2)决定哪一个控件作为数组中的第一个元素,选定该控件并将其Name属性值设置成数组名(或使用其原有的Name属性值)。
    3)将其他控件的Name属性值改成同一个名称。这时,Visual Basic会显示一个对话框,要求确认是否要创建控件数组,选择“是”则将控件添加到控件数组中。
    例如,若原有三个文本框Text1、Text2、Text3,要将它们设置成控件数组,数组名称为TT,则选择第一个文本框Text1,将其Name属性修改成TT,然后再选择Text2,再将其Name属性改成TT,这时会出现下图所示的对话框,单击“是(Y)” 按钮将Text2添加到控件数组中。在属性窗口中可以看出原Text1和Text2文本框的名称都变成了TT。同样将Text3的名称也改成TT,这时不再出现提示对话框,而直接将Text3的名称改成TT。观察各控件的属性窗口中的Index属性,其值分别变成了0、1、2(即控件数组元素的索引)。

    图 通过修改控件名称建立控件数组
    用这种方法建立的控件数组元素仅仅具有相同的Name属性和控件类型,其他属性与最初绘制控件时的值相同。

    2.复制现有的控件,并将其粘贴到所在容器中
    具体操作步骤是:
    1)在容器(如窗体)中绘制或选择要作为控件数组的第一个控件。
    2)选择“编辑”菜单中的“复制”命令(或单击标准工具栏的“复制”按钮),然后选中容器,再在“编辑”菜单中选择“粘贴”命令(或单击标准工具栏的“粘贴”按钮)。Visual Basic同样会显示与上图类似的对话框,单击“是(Y)”按钮,确定要创建一个控件数组。
    这时,绘制的第一个控件具有索引值0,而新粘贴的控件的索引值为1。以后可以继续使用粘贴的方法向现有的数组中添加控件,只是不再出现提示对话框,直接将新粘贴的控件作为控件数组的下一个元素。每个新数组元素的索引值与其添加到控件数组中的次序相同。用这种方法添加控件时,大多数可视属性,例如高度、宽度和颜色,将从数组中第一个控件复制到新控件中。

    3.给控件设置一个Index属性值
    具体操作步骤是:
    1)绘制或选择要作为控件数组的第一个控件。
    2)在属性窗口中直接指定一个Index属性值(如设置为0)。
    3)使用以上两种方法之一添加数组中的其他控件,这时不再出现提示对话框询问是否要创建控件数组。
    建立了控件数组之后,可以通过修改Index属性值修改相应控件在数组中的位置。当然,必须保证同一个控件数组中的各元素的Index属性值是惟一的。
    Visual Basic控件数组的使用示例 - - - 同时移动一组图形
    【例】创建图形控件数组S1,包含6个圆,当按下“移动”按钮时,所有圆全部向下移动100缇,当移动到窗体底部时,返回窗体顶部。界面如下图所示。

    图 同时移动一组图形
    分析:移动操作在单击“移动”按钮(设名称为Command1)时进行,因此,代码应写在“移动”按钮的Click事件过程中。这里要特别注意的是,“移动”按钮不是控件数组元素,因此,其事件过程不会返回Index参数值,也就是在其事件过程中不可以使用Index参数,这里可以用循环变量控制控件数组的索引,通过循环逐个移动图形。
    “移动”按钮的Click事件过程如下:

    Private Sub Command1_Click()
        
    For To 5
            If S1(I).Top S1(I).Height Form1.ScaleHeight Then
                
    ' 当图形底部超过窗体底部时,将图形移回窗体顶部
                
    S1(I).Top 0
            Else
                
    ' 当图形底部未超过窗体底部时,将图形向下移动100缇
                
    S1(I).Top S1(I).Top 100
            End If
        Next 
    I
    End Sub

    对于不关心处理次序的控件数组,也可以使用For Each...Next循环进行处理,例如,上例移动图形无先后次序问题,程序可以改写成:

    Private Sub Command1_Click()
        
    For Each In S1
            If X.Top X.Height Form1.ScaleHeight Then
                
    X.Top 0
            Else
                
    X.Top X.Top 100
            End If
        Next 
    X
    End Sub

    展开全文
  • 程序清单:控件数组加载、选择排序、昌泡排序
  • 控件数组的动态建立 设计窗体时建立控件组的第一个元素,并将其INDEX值赋为0 程序运行中使用LOAD方法,定义新的控件组元素,语法: LOAD 对象名(INDEX)值 使用UNLOAD方法可去除控件组中的元素。 INDEX值为...

     控件数组的动态建立
    设计窗体时建立控件组的第一个元素,并将其INDEX值赋为0
    程序运行中使用LOAD方法,定义新的控件组元素,语法:
    LOAD 对象名(INDEX)值
    使用UNLOAD方法可去除控件组中的元素。
    INDEX值为数值型,可使用变量控制
    对象名须与设计窗体时建立的第0个元素名相同
    新对象的属性值为默认值。

     

    实例:


    Public lngCount As Long    '放到最顶部

        Load Label4(lngCount)
        With Label4(lngCount)
        .Visible = True
        .Left = Label4(lngCount - 1).Left + 2900
        .Width = Label4(0).Width
        .Top = Label4(0).Top
        .Height = Label4(0).Height
        .Caption = lngCount & Label4(0).Caption
        .ZOrder Abs(i)      '设置层次
        End With
    展开全文
  • vb控件数组 的使用

    2009-03-27 22:44:00
    将不是控件数组的text一次性清空Dim I As Long For I = 1 To 8 Me("Text" & I).Text = "" Next 还有如果name不是"text" & i 的话,可以用 dim s as control for each s in form1.controls if typeof s is textbox ...
    将不是控件数组的text一次性清空
    Dim I As Long
    For I = 1 To 8
    Me("Text" & I).Text = ""
    Next
    还有如果name不是"text" & i 的话,可以用
    dim s as control  
    for each s in form1.controls
    if typeof s is textbox then s.text=""
    next

    不过是对form1所有的textbox都修改。
    展开全文
  • VB控件数组之操作技巧

    万次阅读 热门讨论 2012-06-17 19:33:34
    运行中设置数组控件的属性 设窗体上有若干个以 Command1 命名的命令按钮,现要求:点击其中一个按钮后,该按钮不可用,而其它的按钮均可用。以下几行代码可以实现这个要求,比一个一个的设置高效得多。 Private ...
    
    

    一.运行中设置数组控件的属性

    设窗体上有若干个以 Command1 命名的命令按钮,现要求:点击其中一个按钮后,该按钮不可用,而其它的按钮均可用。以下几行代码可以实现这个要求,比一个一个的设置高效得多。

    Private Sub Command1_Click(Index As Integer)
    
    Dim i As Integer '计数器
    Dim comNum As Integer '按钮的索引号
    comNum = 0
    For i = 0 To Command1.Count - 1
    comNum = comNum + 1
    If comNum > Command1.Count - 1 Then comNum = 0
    Command1(comNum).Enabled = True '让所有按钮可用
    Next
    Command1(Index).Enabled = False '让被单击按钮不可用
    
    End Sub


    二、运行中添加和卸载数组控件

    窗体上已有一个文本框Text1,程序需要在运行时动态地创建若干文本框,可这样实现:

    1.首先,设计时给Text1的Index属性设置为"0",这一步很重要:有了索引号才能创建数组控件;

    2.编写代码:[之前请给工程添加两个命令按钮,Name属性取缺省值,Caption属性分别为:添加、卸载]

    Private Sub Command1_Click()
    
    Dim txtNum As Integer 'Text1的Index号
    Dim Num As Integer '赋给各TextBox的值
    
    txtNum = 0 '初值
    Num = 1 '初值
    
    Text1(0).Text = "Text" & Num '第一个Text1的值
    
    Dim i As Integer '计数器
    For i = 0 To 4 '添加五个TextBox
    txtNum = txtNum + 1
    Num = Num + 1
    Load Text1(txtNum) '加载文本框
    Text1(txtNum).Top = Text1(txtNum - 1).Top + 450 '设置位置
    Text1(txtNum).Text = "Text" & Num '加载内容
    Text1(txtNum).Visible = True '令其可见:不能漏
    Next
    
    Command1.Enabled = False 
    Command2.Enabled = True
    
    End Sub
    
    Private Sub Command2_Click()
    
    Dim i As Integer, N As Integer
    N = 0
    For i = 1 To Text1.Count - 1
    N = N + 1
    Unload Text1(N)
    Next
    
    Command1.Enabled = True
    Command2.Enabled = False
    
    End Sub
    


    三、给运行中添加的数组控件命名并编写事件

    其实例二已经给数组控件命了名,只是简单了些。本例将文件夹"F:\Txt"下的所有.txt的文件名作为菜单的Caption添加到菜单项里[请事先建立此文件夹并拷贝一些.txt文件,或者更改代码],当点击这些菜单,程序将调出Windows的记事本打开相应的文件。
    键入以下代码前请启动VB的菜单编辑器,建立一个父菜单项[Naem和Caption属性任意],然后在此父菜单下建立一个子菜单,Name属性为"mnuFiles",Caption属性为"没有文件"。

    Dim MyPath As String '路径名变量
    
    '添加并命名菜单过程
    Private Sub AddMenu()
    
    Dim MenuNum As Integer '菜单索引号变量
    Dim MyFiles As String '文件名变量
    
    MenuNum = 0 '初值
    
    MyFiles = Dir(MyPath + "*.txt") '仅查找文本文档
    If MyFiles = "" Then Exit Sub '为空则退出过程
    
    mnuFiles(0).Caption = MyFiles '给第一个菜单命名
    
    Do Until MyFiles = ""
    MyFiles = Dir()
    If MenuNum = 0 Then MenuNum = 1
    MenuNum = MenuNum + 1
    Load mnuFiles(MenuNum) '加载菜单
    mnuFiles(MenuNum).Visible = True '设置为可见:不能漏
    mnuFiles(MenuNum).Caption = MyFiles
    If mnuFiles(MenuNum).Caption = "" Then Unload mnuFiles(MenuNum)
    '若菜单名为空则卸载掉
    Loop
    
    End Sub
    
    Private Sub Form_Load()
    
    MyPath = "F:\Txt\" '规定路径
    Call AddMenu '执行添加菜单过程
    
    End Sub
    
    Private Sub mnuFiles_Click(Index As Integer)
    
    Dim ret As String
    '用Windows的记事本打开文件:注意中间的空格不能少
    ret = "Notepad.exe" & " " & MyPath & mnuFiles(Index).Caption
    Shell ret, vbNormalFocus
    
    End Sub
    


    四、控件在窗体上的排列问题
    当然添加的数组控件多了,排列确实是个问题。下面的例子给窗体添加499个Label控件,加上事先绘制好的Index号定义为0的控件,总共有500个,能在窗体上从左到右、从上到下整齐地排列。程序运行时要花些许时间。

    Option Explicit
    
    Private Sub Form_Load()
    
    Me.Width = 6800
    Me.Height = 6000
    Me.Caption = "添加标签演示"
    With Label1(0)
    .Top = 0
    .Left = 120
    .Height = 200
    .Width = 300
    .Caption = ""
    End With
    
    AddLabels
    
    End Sub
    
    Private Sub AddLabels()
    
    Dim i As Integer '计数器
    Dim Num As Integer 'Label的Index号
    Dim k As Integer '判断是否满行
    Dim n As Integer '行数计数器
    
    Num = 0
    k = 0
    n = 0
    
    Label1(0).Caption = Num + 1
    
    For i = 1 To 499
    Num = Num + 1
    Load Label1(Num) '加载Label控件
    
    Select Case k 
    Case 0
    Label1(Num).Left = Label1(Num - 1).Left + Label1(0).Width + 20
    If Num = 20 Then n = n + 1: k = n
    
    Case n
    Label1(n * 20).Left = 120
    Label1(n * 20).Top = Label1(0).Height * n
    Label1(Num).Top = Label1(0).Height * n
    Label1(Num).Left = Label1(Num - 1).Left + Label1(0).Width + 20
    If Num = (n + 1) * 20 Then n = n + 1: k = n
    End Select 
    
    Label1(Num).Caption = Num + 1
    Label1(Num).Visible = True
    Next
    
    End Sub 
    


    展开全文
  • VB使用控件数组的演示,控件数组能大大减化VB6.0的工作量,因此是我们有必要掌握的一个VB技巧。运行窗口后,点击按钮,即可生成控件数组,并按照设置自动循环相应内容。若要参考控件数组的核心文件,请下载源码后...
  • VB.NET控件数组

    2010-11-19 12:22:04
    使用VB.NET实现控件数组的4种使用方法,比较基础,有基础参考价值!
  • vb.net 控件数组演示

    2007-07-08 21:49:17
    vb.net 控件数组演示。。。。。。。。。。。。。。
  • 今天学习了刘金玉老师零基础VB教程的第44期,学习的主要内容是如何动态添加控件数组。一、控件数组控件数组:同一个类型的一组控件,这组控件的名称相同,但index索引不同。动态控件数组:可以随着数据的变化,动态...
  • 使用控件数组,使用控件数组能大大减化我们的工作VB6.0源代码
  • VB.net与VB6.0的控件数组对比分析
  • VB.NET控件数组实现控件颜色变化实例
  • VB.NET控件数组的应用,帮户开发人员大大提高了编程效率,我们可以直接使用Form容器的控件集合来操作VB.NET控件数组VB.NET编程语言的出现,为开发人员带来了非常大的好处。我们今天将会学到其中一个比较重要的...
  • VB开发之Shape控件数组实例:控件画线,虽然不常用,但可以了解一下数组,了解一下VB如何画线,挺不错。
  • VB2008】控件数组

    2012-03-15 17:33:50
    vb.net里面的动态控件数组的问题,这个动态控件数组vb里面easy到极致,可是在vb.net里面却有点让人摸不着头脑。 其实也很简单,因为vb.net和vb不同拉,来看看vb.net的动态控件数组如何实现。 1、在form的头部...
  • vb.net像VB6一样使用控件数组VB6一样用来保存对像的index值
  • C#变通方法实现VB6.0里面的控件数组,当然VB.net也可以用, 程序很简单,主要是给出一种思路,控件数组可以提高编程效率和处理问题的快捷性
  • 控件可以调用二维数组么?vb里的控件数组可以是二维的么?像tn那样的控件中子数组的定义是什么含义?
  • vb.net界面上不支持控件数组,但是可以通过代码创建控件类型的数据变量,并在代码中赋予其各个属性值,来完成控件数组的创建。 相信对于使用过VB6.0的朋友们会有些帮助。
  • VB2008控件数组(绝对经典~~) 1.VB2008控件数组不再支持(但还可引用vb6中的数组,并按vb6规则处理) 在 Visual Basic 6.0 中,控件数组可用于管理窗体上的控件;它们提供的功能可共享事件处理程序、循环访问控件组...
  • vb.net动态控件数组

    千次阅读 2006-12-15 12:57:00
    vb.net里面的动态控件数组的问题,这个动态控件数组vb里面easy到极致,可是在vb.net里面却有点让人摸不着头脑。其实也很简单,因为vb.net和vb不同拉,来看看vb.net的动态控件数组如何实现。 1、在form的头部定义...
  • 学习笔记:VB.net动态添加控件数组并传递事件控件数组和事件“中间人”动态添加控件 控件数组和事件 新建一个用户窗体,在定义控件数组时,不能用Withevnets来定义数组 即使可以,为每一个数组成员编写事件也是非常...
  • C#变通方法实现VB6.0里面的控件数组,当然VB.net也可以用,,用了三种方法 ,代码添加事件,属性页里设置事件,判别并处理.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 515
精华内容 206
关键字:

vb控件数组