精华内容
下载资源
问答
  • VB使用控件数组的演示,控件数组能大大减化VB6.0的工作量,因此是我们有必要掌握的一个VB技巧。运行窗口后,点击按钮,即可生成控件数组,并按照设置自动循环相应内容。若要参考控件数组的核心文件,请下载源码后...
  • VB.NET控件数组实现控件颜色变化实例
  • vb.net界面上不支持控件数组,但是可以通过代码创建控件类型的数据变量,并在代码赋予其各个属性值,来完成控件数组的创建。 相信对于使用过VB6.0的朋友们会有些帮助。
  • vb.net像VB6一样使用控件数组VB6一样用来保存对像的index值
  • 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_...
  • VB6实现动态多行增加和删除控件 Option Explicit Dim S1GlngMaxCharactor As Long Dim ChoiceRemove As Long '选择角色移除对象 Private Sub CmdAdd() Dim i As Long, n As Long Dim MaxCharactor As Long ...

               VB6实现动态增加和删除控件数组中的控件

    2021-6-3修改一个BUG

    控件的添加:

    1From1名称改为FrmWork

    2.添加Picture控件名称改为PicCharacterContainer

    3.添加Picture控件名称改为PicShow放入PicCharacterContainer中,设置成控件数组

    4.添加Text控件名称改为TxtShow放入PicCharacterContainer中,设置成控件数组

    操作:在PicCharacterContainer中鼠标左键添加控件,鼠标右键去除控件(可以点选指定控件)。

     

    代码: 

    Option Explicit
    Dim S1GlngMaxCharactor As Long
    Dim ChoiceRemove As Long '选择角色移除对象
    Private Sub CmdAdd()
    Dim i As Long, n As Long
    Dim MaxCharactor As Long
    MaxCharactor = 100 '最大控件数
    For i = 1 To MaxCharactor
        If fChkControls(FrmWork, "PicShow", i) = True Then '控件存在
        n = n + 1
        End If
    Next i
    S1GlngMaxCharactor = n + 1
    For i = 1 To MaxCharactor
        If fChkControls(FrmWork, "PicShow", i) = False Then '控件不存在
            AddCharactor i '增加Picture控件
            AddCharactorNotice i '增加Text控件
            PublicNewArrangeAdd S1GlngMaxCharactor, "PicShow", FrmWork, FrmWork.PicShow '在缺失位置增加控件
            PublicNewArrangeAdd S1GlngMaxCharactor, "TxtShow", FrmWork, FrmWork.TxtShow '在缺失位置增加控件
            AlignBoxes '对齐控件
            TxtShow(i).Text = i '显示控件数组编号
            Exit For
        End If
    Next i
    End Sub
    Private Sub CmdRemove()
    Dim n As Long, i As Long
    If ChoiceRemove <> 0 Then
    Unload PicShow(ChoiceRemove)
    Unload TxtShow(ChoiceRemove)
    ChoiceRemove = 0
    Else
        If S1GlngMaxCharactor >= 1 Then
                    For i = 1 To 100
                        If fChkControls(FrmWork, "PicShow", i) = True Then '存在 '2020-8-22修改为True
                        n = i '找到未删除最大编号
                        End If
                    Next i
                    If n = 0 Then
                        S1GlngMaxCharactor = S1GlngMaxCharactor - 1
                        MsgBox "最初控件不能移除"
                        Exit Sub
                    End If
        Unload PicShow(n)
        Unload TxtShow(n)
        S1GlngMaxCharactor = S1GlngMaxCharactor - 1
        Else
        MsgBox "最初控件不能移除"
        End If
    End If
    End Sub
    Private Sub PicCharacterContainer_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        CmdAdd
    End If
    If Button = 2 Then
        CmdRemove
    End If
    End Sub
    Rem 判断控件是否存在
    Function fChkControls(frmObject As Form, strControlsName As String, ByVal lngIndex As Long) As Boolean
    On Error GoTo Err
        Dim strContrName As String
        If lngIndex >= 0 Then
            strContrName = frmObject.Controls(strControlsName)(lngIndex).Name
        Else
            strContrName = frmObject.Controls(strControlsName).Name
        End If
        fChkControls = True
        Exit Function
    Err:
        fChkControls = False
    End Function
    Rem 增加控件
    Public Sub AddCharactor(ByVal n As Long)
    Dim RowNum As Long
    Dim Row As Long, Line As Long
    Load FrmWork.PicShow(n)
    Set FrmWork.PicShow(n).Container = FrmWork.PicCharacterContainer
    RowNum = Int(FrmWork.PicCharacterContainer.Width / FrmWork.PicShow(0).Width)  '一排容纳多少控件
    If n - 1 >= 0 Then
        Line = Int(n / RowNum) + 1               '控件所处行号
        Row = (n + 1) - (Line - 1) * RowNum '控件所处列号
        FrmWork.PicShow(n).Left = FrmWork.PicShow(0).Left + (Row - 1) * FrmWork.PicShow(n).Width
        FrmWork.PicShow(n).Top = FrmWork.PicShow(0).Top + (Line - 1) * (FrmWork.PicShow(n).Height + FrmWork.TxtShow(0).Height)
        FrmWork.PicShow(n).Visible = True
    End If
    End Sub
    Rem 增加文字控件
    Public Sub AddCharactorNotice(ByVal n As Long)
    Load FrmWork.TxtShow(n)
    Set FrmWork.TxtShow(n).Container = FrmWork.PicCharacterContainer
    If n - 1 >= 0 Then
        FrmWork.TxtShow(n).Left = FrmWork.PicShow(n).Left
        FrmWork.TxtShow(n).Top = FrmWork.PicShow(n).Top
        FrmWork.TxtShow(n).Visible = True
    End If
    End Sub
    Rem MaxNumber         最大数量
    Rem ControlBoxName 控件名称
    Rem From                     工作界面
    Rem ControlBox           控件:例子From.PicShow
    Public Sub PublicNewArrangeAdd(ByVal MaxNumber As Long, ByVal ControlBoxName As String, _
    ByRef From As Object, ByRef ControlBox As Object)
    Dim i As Long, l As Long, A As Variant, B As Variant
    For l = 1 To MaxNumber
        For i = 1 To MaxNumber
            If fChkControls(From, ControlBoxName, i) = True And fChkControls(From, ControlBoxName, i + l) = True Then
               If ControlBox(i).Left > ControlBox(i + l).Left Then
                If ControlBox(i).Top = ControlBox(i + l).Top Then '2021-6-2增加,作用是同行才交换位置
                A = ControlBox(i + l).Left
                B = ControlBox(i).Left
                ControlBox(i + l).Left = B
                ControlBox(i).Left = A
                End If
               End If
            End If
        Next i
    Next l
    End Sub
    Public Sub AlignBoxes()
    Dim i As Long
    On Error Resume Next '防止控件没有出错
    For i = 1 To S1GlngMaxCharactor
        FrmWork.TxtShow(i).Left = FrmWork.PicShow(i).Left
        FrmWork.TxtShow(i).Top = FrmWork.PicShow(i).Top + FrmWork.PicShow(i).Height
    Next i
    End Sub
    Private Sub PicShow_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 2 Then
        ChoiceRemove = Index
        CmdRemove
    End If
    If Button = 1 Then
        CmdAdd
    End If
    End Sub
    

     

    展开全文
  • 学习笔记:VB.net动态添加控件数组并传递事件控件数组和事件“中间人”动态添加控件 控件数组和事件 新建一个用户窗体,在定义控件数组时,不能用Withevnets来定义数组 即使可以,为每一个数组成员编写事件也是非常...

    学习笔记:VB.net动态添加控件数组并传递事件

    控件数组和事件

    新建一个用户窗体,在定义控件数组时,不能用Withevnets来定义数组
    在这里插入图片描述
    即使可以,为每一个数组成员编写事件也是非常麻烦的,考虑通过一个“中间人”来传递事件

    “中间人”

    用继承的方法为Button控件增加一些事件、属性和方法

    Public Class MyButton
        Inherits System.Windows.Forms.Button
    
        Public BtPtr As MyButton = Me
        Public BtNo As Long
    
        Public Event MyEventMouseClick()
        Public Sub RaiseMyEventMouseClick(No As Long)
            BtNo = No
            RaiseEvent MyEventMouseClick()
        End Sub
    
        Private Sub MyButton_MouseClick() Handles Me.MouseClick
            BtPtr.RaiseMyEventMouseClick(BtNo)
        End Sub
    End Class
    

    这里BtPtr是一个指针,每当新的实例一个MyButton控件的时候,让其指向某个特定的不在数组中的Button控件(这个控件在面板上不显示出来),这个特定的Button控件用来传递MouseClick事件
    BtNo记录了这个实例MyButton所在数组的序列号

    每当按键的MouseClick事件触发时,便会调用BtPtr的RaiseMyEventMouseClick方法来触发BtPtr的MyEventMouseClick事件并传递按键的代号BtNo

    动态添加控件

    新建一个窗体Form1,添加按钮Button1,并填写如下代码:

    Public Class Form1
    
        Dim WithEvents Bt As New MyButton
        Dim BtArr(10) As MyButton
        Dim i As Long = 0
        Dim p As Point
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            If Not i > 10 Then
    
                BtArr(i) = New MyButton
                BtArr(i).BtNo = i
                BtArr(i).BtPtr = Bt
                BtArr(i).Text = "按钮" & i
    
                p.X = 40
                p.Y = 40 + 30 * i
                BtArr(i).Location = p
                Me.Controls.Add(BtArr(i))
    
                i = i + 1
            End If
        End Sub
    
        Private Sub Bt_MyEventMouseClick() Handles Bt.MyEventMouseClick
            MessageBox.Show("按钮" & Bt.BtNo & "按下了")
        End Sub
    
    End Class
    

    Bt是一个MyButton控件,但并不在窗体上显示出来,所有实例化的BtArr()成员中的BtPrt都会指向Bt
    当Bt的MyEventMouseClick事件触发时,便会显示是几号按钮被按下了。

    展开全文
  • VB 控件数组画图实例

    2021-06-12 14:00:22
    VB 控件数组画图实例 VB 控件数组画图实例 VB 控件数组画图实例 VB 控件数组画图实例 VB 控件数组画图实例 VB 控件数组画图实例
  • VB.NET控件数组

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

    2019-09-30 18:31:55
    控件的index参数设置为0 转载于:https://www.cnblogs.com/charlesathome/archive/2013/06/16/3138521.html

    将控件的index参数设置为0

    转载于:https://www.cnblogs.com/charlesathome/archive/2013/06/16/3138521.html

    展开全文
  • 浅谈VB.net控件数组的使用

    千次阅读 2014-09-18 17:28:05
    写的还好,能实现,有助于理解类和操作,但是vbnet的类操作还是有点怪,里面的数组B(14),还要借助BB来实体化,在循环,每次BB的new是什么呢? addhandle的那一句,和类里面的sub b_click函数是必须的吗?...

    http://www.docin.com/p-429604776.html

    写的还好,能实现,有助于理解类和操作,但是vbnet的类操作还是有点怪,里面的数组B(14),还要借助BB来实体化,在循环中,每次BB的new是什么呢?

    addhandle的那一句,和类里面的sub b_click函数是必须的吗?似乎是没有类里面的sub,就没有raiseevent那件事情,外边就没有index值的返回。

    基本上是可以的吧,能实现类的继承和功能扩展。

    动态生成控件,并对控件事件响应了。msgbox有显示,就可以了。


    展开全文
  • vb语言中跨控件数组传值怎么复制主数组中的某个下标的那行,怎么得到控件对应数组中下标的行并且复制?
  • VB开发之Shape控件数组实例:控件画线,虽然不常用,但可以了解一下数组,了解一下VB如何画线,挺不错。
  • vb.net 控件数组演示

    2007-07-08 21:49:17
    vb.net 控件数组演示。。。。。。。。。。。。。。
  • vb6控件数组在vba如何套用

    千次阅读 2017-06-19 06:47:53
    以textbox为例: 在VB6以textbox(i)在表示 在VBA以Me.Controls("TextBox" & 1).Object.Text 或  Me.OLEObjects("TextBox" & 1).Object.Text 表示
  • VB使用控件数组划直线,画矩形,画圆等,VB源码实现,代码简单,有参考性,对入门者友好。
  • 上周六开始了我的第一个vb例子,迟迟不愿开始,总觉得100个例子好多,又不明白,敲了也是白敲,但是在师傅的督促下还是开始了,结果第一个就报错了。...是的 ,这是一个控件数组。Index是索引,值指向的就是第几个控...
  • 1、这个实例体现了控件数组的优越性,不用每一个按钮去添加0-9数字执行的过程。   2、开头出代码绑定了“End”命令按钮,用API来关闭正在运行的程序,感觉没多大用,就我目前的知识水平,感觉这大段代码的作用...
  • 控件数组的动态建立 设计窗体时建立控件组的第一个元素,并将其INDEX值赋为0 程序运行使用LOAD方法,定义新的控件组元素,语法: LOAD 对象名(INDEX)值 使用UNLOAD方法可去除控件组的元素。 INDEX值为...
  • VB控件数组之操作技巧

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

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

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

    千次阅读 2019-02-27 16:05:14
    1.动态数组的使用时,先在窗体层、标准模块或过程声明一个没有下标的数组(括号不能省略),不指定维数。 2.在过程中用ReDim语句定义带下标的数组,给出数组的维数。注意:用ReDim定义的数组,只能改变数组元素的...
  • vb.net有没有类似vb6控件数组的方法控制一组控件? 我一个窗口有15个label,名字分别为lab1~lab15,现在要赋值给它们,如果用: lab1.text = xxx lab2.text = xxx lab3.text = xxx ... ... 要累死我了,...
  • 内容见贴: http://bbs.csdn.net/topics/392012989
  • 本文举例介绍了C#实现控件数组的方法,青睐于以前VB6.0控件数组的朋友可以下来看下哈。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,406
精华内容 4,162
关键字:

vb中的控件数组