VB中LIST控件的问题

在VB中搜索,把搜索出来的结果显示在LIST控件,再次搜索的时候把LIST用LIST1.CLEAR清除后,发现数据是清除了,但是还留有一条空白的信息,再次搜索结果就在空白ITEM下面添加,搜索次数多了的话,搜索的结果需要下拉才能见到。并不能说显示在控件的第一条。。
如果才能实现新搜索的结果在第一条显示?

另外,我在用FileCopy命令的时候,如果拷贝的数据多或者大的话,在拷贝过程未完成时,应用程序会导致假死,而且拷贝过程没有WINDOWS的那个文件复制进程条,应用程序不能操作,直到拷贝完成后才正常,不知道为什么会这样,有没有什么办法可以让拷贝时不会假死,或者拷贝时在后台进行,软件还能操作。

请大家帮帮我~~~谢谢!!
LIST控件的第一排列问题已经解决了~~~只要在ADDITEM时加上列数就可以了
现在剩下2个问题。1、就是上面说的FILECOPY的问题。
2、就是在用FILELISTBOX控件显示文件的时候如何实现双击时删除选定的文件?
谢谢~~~

栽培者你那个API进度函数不能调用啊。。我按你说的加了模块,但是在调用uCopyFile时提示BYREF参数类型不符合,去掉prgState后运行提示uCopyFile 参数不可选。。。不知道什么问题。。帮帮我~~谢谢

这个问题可以这样的解决:在vb6中调试通过。

1:首先在公共模块中:

Option Explicit

Public Const FO_MOVE = &H1
Public Const FO_COPY = &H2
Public Const FO_DELETE = &H3
Public Const FO_RENAME = &H4

Public Const FOF_NOCONFIRMATION = &H10
Public Const FOF_NOCONFIRMMKDIR = &H200
Public Const FOF_ALLOWUNDO = &H40

Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

其次:在frm模块之中:

Private Sub Command1_Click()
Dim SHFileOp As SHFILEOPSTRUCT
SHFileOp.wFunc = FO_COPY
SHFileOp.fAborted = True
SHFileOp.pFrom = "F:\MEM\*.*"
SHFileOp.pTo = "f:\aa"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
SHFileOperation SHFileOp

MsgBox "复制完成"

End Sub

注意:这是后台的一个拷贝,复制的过程当中软件还能操作,但是你要理解vb

的api函数的一些声明和用法,特别是SHFileOperation的用法。

2:FILELISTBOX控件显示文件的时候如何实现双击时删除选定的文件的解决:

在frm之中:一个listbox控件
Option Explicit

Private Const LB_ITEMFROMPOINT = &H1A9
Private Declare Function SendMessage Lib "user32"

Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal

wParam As Long, lParam As Any) As Long

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim pos As Long
dim idx As Long

pos = X / Screen.TwipsPerPixelX + Y / Screen.TwipsPerPixelY * 65536

idx = SendMessage(List1.hwnd, LB_ITEMFROMPOINT, 0, ByVal pos)

Kill List1.List(idx)

List1.Refresh

End Sub

注意:Kill List1.List(idx)‘这个地方有可能不会达到你的要求,如果要删

除文件,则你要写全文件的路径,即是:

kill "c:\aaa\" & List1.List(idx)

如果是只是不显示在list中,则只需:List1.RemoveItem (idx) 就可以了!

你可以试一试!!!
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-09-02
1.可以借用API来实现进度,下面是我原来写的一个例子。
http://ronggang.spaces.live.com/blog/cns!A3A7B24004DD9126!127.entry

2.如果你的FILELISTBOX为 File1的话,直接在它的双击事件中编写代码:
Private Sub File1_DblClick()
If Right$(File1.Path, 1) = "\" Then
Kill File1.Path & File1.List(File1.ListIndex)
Else
Kill File1.Path & "\" & File1.List(File1.ListIndex)
End If
End Sub

Kill 时如果文件在使用则会产生一个错误,你需要去处理它。
第2个回答  2006-09-02
要实现进度,你可以用open 打开文件对文件进行拷贝复制,这样你就能具体的控制复制进度。实际上filecopy也是同样的操作。

至于你说的删除文件,你可以用kill函数 + 文件名 就可以做到,比较简单。
第3个回答  2006-09-02
kill`````就可以了啊
双击事件‘‘‘

VB6.0中listbox的问题
list1.listindex =-1 选择后,list1.listindex 就是选择项目的序号(第一行序号为0)。Selected用于可以一次选多行的情形。正确的判定,应是对每一项目判定:If list1.Selected(i)=False Then 这里Selected实际上是一个数组。

VB中列表框的问题
列表框为空可表示为list1="",如要全部清空列表框用list1.clear 列表框中的list属性可见例子:list1.list(0)代表第一个列表项的内容,list1.list(1)为第二个列表项的内容,以此类推……列表框的listindex属性是列表项索引,其值为最后选中的列表项的序号,第一个列表项为0,第二个为1,……...

关于VB列表框最后一项的问题
第一题,additem表示添加(也可以插入),两种用法,如果是 list1.additem "1" '那么表示在最后添加一行,内容为1,第三题也一样,其实可以理解为默认值,不添加任何参数就自动加到最后 list1.additem "1",N '那么表示在第N行后面添加一行,内容为1,N可以是0到List1.ListCount的整数 所以B选...

在VB中,为什么我的DBList1控件不会显示出数据
1,可能datasouce的数据源中没有读到数据 2,可能datasouce所要的数据类型不对 3,可能DBList1没有指定数据列名或者列不存在

关于VB里LIST控件的一些用法
关于VB里LIST控件的一些用法。如下参考:1.首先,打开Excel表,如图所示,单击下面的文件1,右键单击并选择查看代码。2、.进入学位后的代码页,可以在页面上看到当前版本的代码。3.然后我们需要使用listbox的用法,如图所示,输入sheet1。细胞(1,3)=sheet1。细胞(1,1)+sheet1。单元格(1,2),回车。...

VB6.0中LISTBOX的查找问题
Private Sub Command1_Click() '搜索 Dim strtemp As String '定义变量为字符串型,Dim a As String '定义变量为字符串型 Dim i As Integer '定义变量为整值 strtemp = Trim(Text1.Text) ' 初始变量Strtemp 等于文本框中的内容 ,也就是要搜索的内容 For i = 0 To List1.ListCount - ...

VB问题中的List
= 。然后排除C D Val是转数值函数,由123和456得到123456,应该为字符相加,应选择A X$=Inputbox("请输入X的值")时,在弹出的对话框中输入123,得到X$="123",在 列表框 List1选中1个列表项(数据为456),得到list1.list(0)="456",因此,y=X$+list1.list(0)="123"+"456"="123456...

VB中的listbox控件里有文本和数字,如何数字相加的和
Private Sub Command1_Click()For i = 0 To List2.ListCount - 1 '循环列表所有选项 If IsNumeric(List2.List(i)) = True Then Sum = Sum + Val(List2.List(i))'如果选项内容为数字 则 累加 Next Text1.Text = CStr(Sum)End Sub Private Sub Form_Load()List2.AddItem 1 List2....

VB的listview使用问题
。控件名称为ImageList1.可以分别为每一种视图设置一个ImageList 用ListView控件在窗体上创建一个ListView1,点右键选属性,转到图像列表,然后全部指定ImageList1,转到列首选项卡,至少添加一列,为每列指定一个图标索引,其他设置自行设定,最后确定 添加表项的代码格式,以ListView1为例 ListView1.List...

VB中列表框的问题
if combo1.text<>"" then list1.additem combo1.text endif if combo2.text<>"" then list1.additem combo2.text endif if combo3.text<>"" then list1.additem combo3.text endif if combo4.text<>"" then list1.additem combo4.text endif ...

相似回答