首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何在类中使用listbox-非使用form1.List1 [已结贴,结贴人:fisheep_works]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 23:25:02 楼主
    小弟要对多组字符串组进行处理

    小弟选择listbox的原因是 因为listbox中的item RemoveItem后后面的index会自动提上来

    如:
    list1.list(6)到list1.list(n)被移除后此时的list1.list(7)便是未移除时的list1.list(n+1)
    后面的项自动提上来后方便使用

    不过小弟需要用到n个(非固定)listbox

    在类中不知如何定义使用(不在窗体中添加listbox,用fom1.list1来使用)
    dim s(8) as listbox 只能定义为常量表达式
    而Load Form1.List1(n) 需要在form1中添加list1

    大侠帮帮忙啊。。。谢谢
    30  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 11:35:251楼 得分:5
    有个想法,不知道行得通否,在类内部动态创建一个窗体,再创建一个或多个list控件。

    或者找找有没有类似listbox的类。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 11:37:092楼 得分:0
    http://www.qqgb.com/Program/VB/VBJQ/Program_170665.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 12:13:573楼 得分:0
    选择listbox的原因是 因为listbox中的item RemoveItem后后面的index会自动提上来

    Dim  d                                  '创建一个变量
    Set  d  =  CreateObject(Scripting.Dictionary)
    d.Add  1,"Athens"          '添加一些关键字和条目
    d.Add  2,"Belgrade"
    d.Add  3,"Cairo"... 

    如果移除2,d的3不会自动提上来,如果是n的话处理起来就很麻烦了,所以才想用listbox的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 00:07:084楼 得分:0
    我不怎么明白你要表达的。

    你的问题是不是要如何使用代码来增加ListBox?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 14:42:365楼 得分:0
    是想知道如何在类中使用类似listbox的方法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 15:31:526楼 得分:0
    dim s(8) as new listbox
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • myjian
    • 等级:
    发表于:2008-05-06 16:54:397楼 得分:10
    引用楼主 fisheep_works 的帖子:
    小弟要对多组字符串组进行处理

    小弟选择listbox的原因是 因为listbox中的item RemoveItem后后面的index会自动提上来


    我个人认为这并不是问题.

    你的"多组字符串组",有多少?

    直接写个类,管理这些字符串的INDEX不就行了....

    private type MyStrArr
        theString as string
        theIndex as long
    end type

    类似上面的结构,你在改变了字符串后,只需要改变theIndex的值,而不需要动字符串,这样的话就没什么速度问题吧~~~

    最多就是用个循环改改LONG.....

    VBScript code
    Private Sub Command1_Click() Dim I As Long, J() As Long, K As Long ReDim J(500000) K = 1 For I = 1 To 500000 If I = 3002 Then K = 1 If I = 3000 Then I = 3001 K = 2 End If J(I) = J(I - K) + 1 Next I MsgBox "asfds" End Sub


    干脆写了个代码来测试一下.

    这个代码是50万个数据的索引,把第3000个索引跳过....后面的索引仍然跟着前面的索引加1.

    在IDE里执行,在点下按钮几乎同时,就弹出对话框了.

    也许不是你要的效果,但我只是想说明一下这种思路....你看看是否有参考价值吧.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • myjian
    • 等级:
    发表于:2008-05-06 17:16:218楼 得分:0
    引用 2 楼 jennyvenus 的回复:
    http://www.qqgb.com/Program/VB/VBJQ/Program_170665.html


    这帖子最后一个也是我-_-

    原帖:

    http://topic.csdn.net/u/20071226/12/3014c6cc-dd09-4c1e-9447-6978ee071f23.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 20:30:269楼 得分:0
    6楼的大哥
    dim s(8) as new listbox

    这里兄弟我需要使用到随机个listbox,所以这样就。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 20:45:1510楼 得分:0
    myjian 大哥你的方法我也考虑过,不过这样的话处理起来资源消耗有点吓人咯。。。

    我的目的是为了随机或顺序调用字符串组中的字符串

    temp = "字符串1,字符串2,字符串3,字符串n"

    temp = Split(temp, ",")

    For i = 0 To UBound(temp)
      List1(0).AddItem temp(i)
    Next
    '这样把字符串加入到listbox中

    '顺序调用字符串
    For i = 0 To List1(0).ListCount - 1
      Debug.Print List1(0).List(i)
    Next

    '随机调用字符串
    Debug.Print List1(0).List(n)
    List1(0).RemoveItem n '统计是否已调用过

    If List1(0).ListCount = 0 Then
      '全部已经随机调用过了
      '如果需要再一次调用 重新赋值
    End If

    最重要的就是为了随机调用字符串组,其他的问题也都简单
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Sandrer
    • 等级:
    发表于:2008-05-08 06:27:0311楼 得分:0
    使用集合不就得了?为什么要用ListBox!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 17:03:2312楼 得分:0
    不方便随机调用

    n=cint(rnd*List1(0).ListCount)
    Debug.Print List1(0).List(n)
    List1(0).RemoveItem n '去除已调用过的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • myjian
    • 等级:
    发表于:2008-05-08 20:32:4313楼 得分:0
    引用 10 楼 fisheep_works 的回复:
    myjian 大哥你的方法我也考虑过,不过这样的话处理起来资源消耗有点吓人咯。。。

    我的目的是为了随机或顺序调用字符串组中的字符串

    temp = "字符串1,字符串2,字符串3,字符串n"

    temp = Split(temp, ",")

    For i = 0 To UBound(temp)
      List1(0).AddItem temp(i)
    Next
    '这样把字符串加入到listbox中

    '顺序调用字符串
    For i = 0 To List1(0).ListCount - 1
      Debug.Print List1(0).List(i)
    Next



    貌似没有看到哪一步有大量的资源消耗...

    你最好详细说一下你的需求,别总是让大家猜...

    那样的话可能问题也比较快地能得到解决.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 20:43:0714楼 得分:0
    首先谢谢各位大侠的关注

        Dim I As Long, J() As Long, K As Long
       
        ReDim J(500000)
        K = 1
       
        For I = 1 To 500000
            If I = 3002 Then K = 1
            If I = 3000 Then
                I = 3001
                K = 2
            End If
            J(I) = J(I - K) + 1
        Next I
        MsgBox "asfds"

    实际运行时每组字符串多则百多条,少则只有几条,只是小弟我想尽最大可能减少运算,listbox符合小弟的要求,不过在模块中不能定义随机个listbox。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 21:13:1315楼 得分:10
    越看越莫名其妙。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 01:28:1116楼 得分:0
    呵呵。。。

    其实主要问题就是如何随机调用字符串组中的字符串(不重复)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 01:31:4817楼 得分:0
    引用 16 楼 fisheep_works 的回复:
    呵呵。。。

    其实主要问题就是如何随机调用字符串组中的字符串(不重复)

    晕。。。这样你用跳虱算法不就完了吗?
    google或百度一下跳虱算法。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 09:57:1218楼 得分:0
    还有一点重要的是随机调用字符串组中的字符串(不重复)不是一次性就调用完,通过函数返回,可以只返回一次或全部

    因为是多个字符串组,所以要用listbox来保存值。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 12:49:1019楼 得分:0
    你不如把示例数据和想要得到什么样的结果都列出来吧。。。。就你上面的描述,觉得用不着listbox。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 14:19:1820楼 得分:5
    为什么不用Collection?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 16:56:2121楼 得分:0
    谢谢各位大哥大姐的关注和帮忙哈,小弟也有所启发,我在去想想。结帖了哈。。。再次3Q各位
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved