精华内容
下载资源
问答
  • VB数组求平均成绩

    2010-06-07 14:19:52
    VB数组求平均成绩 VB数组求平均成绩
  • 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文本框属性:VB文本框的常用属性

    千次阅读 2020-12-18 21:17:58
    文本框是一个文本编辑区。可以在设计阶段或运行期间在这个区域中输入、编辑、修改和显示文本,类似于一个简单的文本编辑器。l-常用属性文本框基本属性:Name、text、:Height、Width、Top、Left、Enabled、Visible、...

    文本框是一个文本编辑区。可以在设计阶段或运行期间在这个区域中输入、编辑、修改和显示文本,类似于一个简单的文本编辑器。

    l-常用属性

    文本框基本属性:

    Name、text、:Height、Width、Top、Left、Enabled、Visible、FontName、FontSize、FontBold、FontItalic、FontUnderline、A

    lignment、BorderStyle等。

    文本框特有属性:

    (1)Text文本属性

    在文本框中显示正文的内容存放在Text属性中。

    (2).MaxI~ength属性

    设置文本框中能够输入的正文内容的最大长度。0:缺省值,为系统允许的最长度;非零值:文本框中的字符数的最大值,一个英文字符与一个汉字都为1,整理发布。

    (3)MultiI,ine属性

    True:则可使用多行文本,即在文本框中输入或显示文本时可换行。按crtl+Enter键可以插入一个空行;False:则在文本框中只能输入单行文本。

    (4)PasswordChar属性

    该属性可用于口令输入。在默认状态下,该属性被设置为空字符串(不是空格),当用户从键盘上输入时,每个字符都可以在文本框中显示出来。如果把PasswordChar属性设置为一个字符,例如星号(★),则在文本框中输入字符时,显示的不是输入的字符,而是被设置的字符(如星号)。不过文本框中的实际内容仍是输入的文本,只是显示结果改变了。利用这一特性,可以用作设置口令的输入,,www.

    (5)ScrollBars属性

    该属性用来确定文本框中是否有滚动条。O—None:无滚动条;1一Hotizontal:加水平滚动条;2一Vertical:加垂直滚动条;3一Both:同时加水平和垂直滚动条。

    说明:

    当MuhiI,ine多行属性为True时,ScrollBars属性才有效。当文本框具有水平或垂直滚动条后,文本框中文本的自动换行功能不起作用,只能通过回车键换行。

    (6)I,ocked属性

    False:表示可以编辑,默认值为False;Tme:文本控件相当于标签的作用,不能被编辑。

    (7)SelStart、SelLength、SelText属性

    在程序中,对文本内容进行选择时,这3个属性用来标识用户选中的正文。

    SelStart:选定正文的开始位置,第一个字符的位置是0。

    Selcength:选定正文长度。

    SelText:选定正文内容。

    设置了SelStarl和SelI~ength属性后,VB会自动将设定的正文送入SelText属性存放。这些属性一般用于在文本编辑中设置插入点及范围,选择字符串,清除文本等,并且经常与剪贴板一起使用,完成文本信息的剪切、拷贝、粘贴等功能

    展开全文
  • 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

    展开全文
  • VB.NET中使用控件数组

    万次阅读 2010-05-20 08:40:00
    普通控件仅使用名称就可以识别,而引用控件数组中的成员则需要同时使用名称和索引。开发人员在 Visual Basic 6.0 以及更早的版本中使用控件数组主要有以下三个理由: 1. 在循环中访问数组中控

    http://www.cnblogs.com/yunbo/archive/2009/08/13/1545657.html

     

    控件数组是位于一个窗体上共享同一名称的一组同种类型控件。普通控件仅使用名称就可以识别,而引用控件数组中的成员则需要同时使用名称和索引。开发人员在 Visual Basic 6.0 以及更早的版本中使用控件数组主要有以下三个理由:
    1.        在循环中访问数组中控件的属性。
    2.        向窗体动态添加新控件。
    3.        允许一个事件例程与多个控件连接 。
    控件数组的使用,极大的方便了开发人员。然而,刚刚从Visual Basic6.0(以下简称VB6.0)过渡到Visual Basic.Net(以下简称VB.NET)的初学者却发现,在VB.NET中似乎不能使用控件数组了。笔者仔细查阅了VB.NET的MSDN文档发现,在 VB.NET 中,确实不再支持控件数组。原因是,VB.NET对事件模型作了很大的改动,引入了另外一种数据类型――控件集合模型,使控件数组没有存在的必要。就像 VB6.0 中的控件数组可以共享事件一样,VB.NET 中的事件模型允许任何事件处理程序都可以处理来自多个控件的事件,这就允许创建属于不同类型但共享相同事件的控件组。
    所谓控件集合是指包含在一个容器中的所有控件的总和,能够创建控件集合的容器有:Form、Panel、GropBox等。程序运行时,可以通过访问容器的Control属性来得到该容器中的所有控件。
    下面将演示如何通过控件集合来使用控件数组:
    一、        直接使用Form容器的控件集合来使用控件数组:
    建立一个VB.NET项目,在Form1中添加三个TextBox控件,名称分别为:TextBox1、TextBox2、TextBox3,一个Button控件。
    双击Button,输入如下代码:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            ‘下面的语句是通过数组元素的下标来访问Form中的每一个元素。
            Me.Controls.Item(0).Text = "集合中的第一个元素"
            Me.Controls.Item(1).Text = "集合中的第二个元素"
            Me.Controls.Item(2).Text = "集合中的第三个元素"
            Me.Controls.Item(3).Text = "集合中的第四个元素"
    End Sub
    运行项目后,点击Button,看到的结果是:Form1中的所有控件(包括Button自己)的Text属性都被修改了,同时还发现,最后加入的的控件变成了集合中的第一个元素(下标为0)。这个结果说明:
    Form1中的所有控件已经自动构成了一个控件集合(控件数组),这个特点使得建立控件数组变得非常简单。
    在访问这些控件时,除了可以通过控件名称直接访问外,还可以通过Contro.Item(n)属性按下标访问集合中的每一个控件;
    集合中控件的类型可以不相同,这点和VB6.0完全不同;
    集合中的下标顺序是按照加入控件的顺序倒排的;
    VB.NET中控件数组的特点让人稍感不适的是,控件数组的下标是按加入顺序的倒排续产生的,但程序员完全可以改变这个顺序:在代码编辑窗中点击“#Region " Windows 窗体设计器生成的代码”旁边的“+”号,代码展开后,找到如下代码:
    Me.Controls.Add(Me.Button1)
    Me.Controls.Add(Me.TextBox3)
    Me.Controls.Add(Me.TextBox2)
    Me.Controls.Add(Me.TextBox1)
    这个代码顺序就是控件数组的下标顺序,只要改变这个顺序就可以改变控件数组中每个以元素的下标。
    在Form中构成控件数组非常方便,但也有一个小问题:一般来说,Form中的控件往往有很多种,系统建立控件集合的时候将会把其中的所有控件放在同一个集合中,这样一来,程序员在写代码的时候有可能将每一个控件的下标混淆,为了解决这个问题,可以用Panel容器来根据需要将某类控件建立成控件数组,也就避免了上述问题。
    建立的方法非常简单:只需要在Form中添加一个Panel控件,然后将需要建立控件数组的控件加入其中即可,然后用:Panel.Control.Item(n)来访问其中的每一个控件。
    二、        用代码建立控件集合。
        建立一个VB.NET项目,在Form中添加三个TextBox和一个Button控件,在代码编辑窗口中输入如下代码:
    Dim TextboxArray As New ArrayList ‘定义一个数组例表
    Private Sub BiuldTextBoxArray() ‘过程用来将Form上的三个TextBox加入到数组例表中
         TextboxArray.Add(TextBox1)
          TextboxArray.Add(TextBox2)
          TextboxArray.Add(TextBox3)
    End Sub
    ‘让Form在启动的时候将三个TextBox控件加入到数组例表中,构成控件数组。
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        BiuldTextBoxArray()
    End Sub
    ‘编写Button点击事件代码,利用控件数组访问三个TextBox控件
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
          TextboxArray(0).text = "文本框第一个元素"
          TextboxArray(1).text = "文本框第二个元素"
          TextboxArray(2).text = "文本框第三个元素"
    End Sub
        运行工程,点击Button,发现三个TextBox都被修改了,效果和前面的方法一样。
    三、        在程序中动态添加控件数组。
    前面定义的控件数组都是在设计阶段完成的,它要求,控件数组中的控件数量必须已知,也叫静态控件数组;但很多时候要求,控件数组中的控件数量要用程序的某些运行情况来确定,这就要求,控件数组中的控件要能实现动态添加。
    建立一个VB.NET工程,在Form上添加两个Button,其中,Button1用来添加动态控件数组;Button2用来修改数组中每个控件的属性。
    在代码编辑窗口中输入如下代码:
    Dim List As New ArrayList ‘定义一个例表对象,用来集合数组控件
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer
        For i = 0 To 4 ‘利用循环语句动态加入控件数组。
            Dim FirstTextBox As New TextBox ‘定义文本框对象
            Me.Controls.Add(FirstTextBox) ‘将一个文本框控件加入到Form上
            List.Add(FirstTextBox) ‘将文本框控件加入到例表集合中
            List.Item(i).top = i * List.Item(i).height + 20 ‘修改新加入控件在Form上的位置
            List.Item(i).left = 100
            FirstTextBox.TabIndex = i ‘修改新加入控件的TabIndex值
            List.Item(i).text = "TextBox" & i.ToString ‘修改默认文本。
        Next
    End Sub
    用循环来访问动态控件数组中的控件。
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim i As Integer
        For i = 0 To 4
            List.Item(i).text = "第 " & i.ToString & " 个元素"
        Next
    End Sub
    运行项目,先点击Button1,Form上将出现5个文本框,然后再点击Button2,修改这五个文本框的Text属性。
    从这个实例看出,VB.NET中动态加入控件数组与在VB6.0中实现动态数组有一个显著的不同:VB6.0中必须要有一个静态的“控件种子”,而在VB.NET中已经不需要了。
    四、        控件数组的事件响应。
    控件数组的最重要的特色之一就是让一组控件响应同一个事件,在事件例程中接收控件具体某控件的Index值来分别处理处理具体问题,这点已经在VB6.0中表现得淋漓尽致了,它在VB.NET中同样可以实现,只不过实现方式有了变化。由于在容器中的每一个控件只要不作特殊处理,都会自动构成了控件集合,这样,只要对原有的事件例程作少量修改,就可以非常方便的实现用一个事件例程响应某个集合中所有控件产生的事件。
    下面演示实现用同一个例程来处理两个Button和一个TextBox发出的Click事件。
    建立一个VB.NET项目,在Form上添加两个Button,和一个TextBox。
    在代码编辑窗口中点击“#Region " Windows 窗体设计器生成的代码”旁边的“+”号,代码展开后,找到如下代码并调整为下面的顺序:
    Me.Controls.Add(Me.TextBox1)
    Me.Controls.Add(Me.Button1)
    Me.Controls.Add(Me.Button2)
    输入如下代码:
    Private Sub mControl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, TextBox1.Click
            Select Case sender.tabindex
                Case 0
                    MessageBox.Show("你点击了 Button1 按钮")
                Case 1
                    MessageBox.Show("你点击了 Button2 按钮")
                Case 2
                    MessageBox.Show("你点击了 TextBox1 按钮")
            End Select
        End Sub
    在这段 代码中:Private Sub mControl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, TextBox1.Click 是一个自定义事件,在Handles后面的语句表示:该例程将响应Button1, Button2, TextBox1控件发出的Click事件,如果还有其他控件,也可以放在后面,每一个控件名称用“,”号隔开。
    运行项目,分别点击Form上面的三个控件就能体会到它的用法。

    ====================

    vb.net里面的动态控件数组的问题,这个动态控件数组在vb里面easy到极致,可是在vb.net里面却有点让人摸不着头脑。
    其实也很简单,因为vb.net和vb不同拉,来看看vb.net的动态控件数组如何实现。

     

    1、在form的头部定义一个公共的ArrayList类型的变量    

          Dim m_items As New ArrayList

    2、在程序中动态生成控件

           while (a<b)

               dim lblControl as Label= new Label

               lblControl .Text="你好"
               lblControl .dock=......top
               lblControl .autosize=false.
               ....

               me.controls.add(lblControl )'把动态产生的控件放到对应的区域


               '下面这个地方注意拉,
               m_items.Add(lblControl )'把这个label放到前面第一步定义的ArrayList中去
               AddHandler label.Click, AddressOf LblControlArrayClick '给这组动态控件定义click事件的触发函数LblControlArrayClick 。

           end while

    3、定义LblControlArrayClick 的click事件的触发函数,这个是和vb不同的地方的关键所在拉。

    '控件数组事件
         Private Sub LblControlArrayClick (ByVal sender As Object, ByVal e As EventArgs)


             Dim lblText As String
             lblText = CType(sender, Label).Text        '这里CType就是将触发事件的对象还原为Label对象,
                                                                             '有点像java里面的集合阿,放进去后再取出来的时候,要造型一下。
            msgbox ("所电击的动态控件的文字是:" & lblText)

         end sub

    好啦,就是这么简单,vb.net中的控件数组。
    如果你要为控件数组定义其他的触发事件,只要修改对应的触发就可以了。

    展开全文
  • VB.Net中创建使用控件数组

    千次阅读 2009-02-09 11:02:00
    首先创建一个Button类型控件数组: 1、创建“Windows应用程序”类型的工程,添加名为ButtonArray的类,并使该类继承 System.Collection.CollectionBase 类。System.Collections.CollectionBase类是.NET框架类库中为...
  • 例如,本实例通过按钮数组来管理界面中的所有按钮控件,从而使用最少的代码实现了模拟的计算器界面。实例运行效果如图 本实例的关键点在于GridLayout布局管理器的应用,通过它可以自动完成控件的布局与大小控制;...
  • vb6中使text控件的光标随着增加的内容向下移动 Dim i As Integer   Private Sub Command1_Click()   Text1.Text = Text1.Text + "test..." + CStr(i) + Chr(13) + Chr(10) i = i + 1 End Sub  ...
  • 控件:几个文本框textbox 事件:TextBoxes_textchanged 代码: PrivateSubTextBoxes_TextChanged(ByValsenderAsSystem.Object,_ ByValeAsSystem.EventArgs)HandlesTextBox1.TextChanged,_ TextBox2....
  • 注释:VB6的控件本身是不支持鼠标滚轮滚动的事件,以前写的代码有点low,参考了一个大神的代码,重新写了一个类模块用来支持滚动事件,记录一下…… 文章目录一、效果二、原理三、代码 ----------## 标题 一、效果...
  • 设程序中有如下数组定义和过程调用语句:Dima(10)AsInteger……Callp(a)如下过程定义中,正确的是( )。A.PrivateSubp(aAsInteger)B.PrivateSubp(a()AsInteger)C.PrivateSubp(a(10)AsInteger)D.PrivateSubp(a(n)...
  • VB中的数组

    千次阅读 2011-09-16 09:26:39
    5.1 数组的概念 1.引例  求100个学生的平均成绩及超过平均成绩的人数。  如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、……mark100。若用数组,可以只用一个来表示mark(1  To ...
  • VB中,MSHFEXGRID不支持文本框,为了解决这个问题,一般的方法就是通过一个文本框的显示和隐藏,并获得表格单元的坐标,来实现向MSHFLEXGRID中录入数据的,具体方法我记得在本博中有,就不说了,自己搜一下 今天要说的是...
  • VB.NET 控件数组相关

    2009-07-13 12:01:00
    本例以文本框为类加以说明 调用方法 Private Sub form_txtArray() Dim iLoop As Integer For iLoop = 0 To 5 Dim txtBox As New Windows.Forms.TextBox txtBox.Location =
  • 怎么将数组作为参数带入到vb窗体上的控件里呢?怎么在控件中调用多个数组,完成数组行复制功能?
  • vb.net控件

    千次阅读 2020-04-28 14:49:22
    vb.net 的 Label 控件 label(标签)控件用于显示文本,是设计应用程序界面时经常要用到的控件之一, 主要是用于显示其他控件名称,描述程序运行状态或标识程序运行的结果信息等 等,响应程序的事件或跟踪程序运行的...
  • VB讲课笔记08:数组

    千次阅读 2018-03-12 18:01:30
    了解控件数组的概念、声明和使用。一、数组概念(一)数组定义数组是高级程序设计语言中数据组织的一种方式,是一种带有下标的结构,是按下标进行访问的一组下标变量的“集合”。数组可以是一维、二维或多维的,每一...
  • 添加控件数组

    2014-07-11 11:16:15
    记得大学的时候在使用VB的时候使用过控件数组,可是到了.NET的时代好像没有了.当时可以用控件数组作很多繁琐的事情,可以动态的生成一些功能和目的基本相同的一组文本框和一堆标签.这些控件数组响应同一个事件,我们在...
  • 计算机等级考试二级VB考点:动态数组及声明建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。下面是小编为大家带来的关于动态数组及声明的知识...
  • 视频讲解文字讲解:高职考技能提升教程 textbox文本框综合运用界面设计 要求1. 创建一个“标准EXE”工程,将其... (4分)单击单选按钮控件数组中的任一个按钮触发一个共享事件(单击“左对齐”,文本框显示“文字左...
  • VB常用控件介绍

    千次阅读 2018-02-16 16:24:30
    3、TextBox(文本框控件 4、RichTextBox控件 5、NumericUpDown控件 6、Button(按钮)控件 7、GroupBox(分组框)控件 8、RadioButton(单选按钮)控件 9、CheckBox(复选框)控件 10、ListBox(列表框)...
  • vb控件开发 开发ocx

    热门讨论 2011-02-28 16:12:16
    动态加入控件到VB控件数组中 33 , 33.txt 对ListView中的列排序 34 , 34.txt 放一个Combo到Toolbar中 35 , 35.txt 改变 ListIndex而不发生 Click 事件 36 , 36.txt 改变 TreeView 的背景 37 , 37.txt 改进VB的驱动...
  • 我只实现了输入完后自动跳下一个文本框的功能,可自动回退字符功能还没搞定。。。。求帮助[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif][/img] text2(i)控件全部输入完 [img=...
  • 1.VB 二进制Byte()数组转换成十六进制字符串函数: Private Function BytesToHex(bytB() As Byte) As StringDim strTmp As String, i As LongFor i = 1 To UBound(bytB)strTmp = strTmp &amp; " " &...
  • 【易错提示】在窗体上复制一个控件时,如果需要创建控件数组,则在提示框中单击“是”即可,如果不需要,则直接单击“否”。 4在考生文件夹下有一个工程文件sjt4.vbp。窗体中有一个图片框,图片框中有—个蓝色圆,...
  • VB 获取Textbox文本框中的行数函数

    千次阅读 2013-01-31 17:16:14
    文本框中的行数函数 ※ VB 快速读取 TextBox 第 N 行的资料 ※ 限制文本框 (TextBox) 只能输入数字 (VB6 代码 ) ※ VB 提取 TextBox 文本框中指定一行字符串 ※ VB 小技巧自定义 TextBox 文本框...
  • VB入门基础。 清楚易懂,适合初学者 ... 本课程主要从开发环境、窗体、命令按钮、文本框、标签、消息框和输入框、代码基础、选择结构、循环结构、数组、过程、控件等方面进行讲解 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,740
精华内容 1,096
关键字:

vb文本框控件数组