pb listbox listview控件 实现目录显示,可过滤不想要的文件,实现checkbox选择,但是效果一般,看来listview控件不太好用,实现效果困难(序号|文件名|...|checkbox)。
换回datawindow控件实现就好弄,记录下listview代码,但是有个问题,一直觉得datawindow控件显示效果不如listview控件(pb的listview显示效果和别的开发工具listview控件很像),效果在研究吧。
【选择目录代码】
long ll_item
long ll_items,ll_index, ll_cut =1
string ls_name, ls_filename, ls_fname[]
int i = 0
//
string ls_path
//获取当前应用目录
ls_path = GetCurrentDirectory ()
GetFolder ("选择目录", ls_path)
ls_path = ls_path + "\"
//--------------------------------------------------------------------//
在窗口画板创建可现实控件listbox lb_filelist,获取目录文件
//
//lb_FileList.setredraw(false)
遍历结果直接显示到控件
//lb_FileList.DirList( ls_path + '*.*', 16, st_5)
row count
//ll_items = lb_FileList.totalitems()
控件没有数据
//IF ll_items= 0 THEN
// RETURN 0
//END IF
//
从控件获取 文件名
//for ll_index = 1 to ll_items
// ls_filename = lb_FileList.text(ll_index)
// //进入下轮循环 不执行后续语句
// if right(ls_filename, 1)=']' then
// //删除目录
// lb_FileList.deleteitem(ll_index)
// //很好的处理计数器
// ll_index = ll_index -1
// end if
//
//next
//
//lb_FileList.setredraw(true)
----------------------------------------------------------------------//
//创建动态控件获取目录文件列表
listbox lb_FileList_NoDisplay
OpenUserObject (lb_FileList_NoDisplay)
//遍历结果直接显示到控件
lb_FileList_NoDisplay.DirList( ls_path + '*.*', 16, st_5)
//row count
ll_items = lb_FileList_NoDisplay.totalitems()
//控件没有数据
IF ll_items= 0 THEN
RETURN 0
END IF
//创建listview 列表项
listviewitem lvi_item
//清空listview
lv_filelist.deletecolumns( )
lv_filelist.deleteitems( )
lv_filelist.view = ListViewReport!
lv_filelist.addcolumn( "", Center!, 300)
lv_filelist.addcolumn( "序号", Center!, 300)
lv_filelist.addcolumn( "文件名", Center!, 1200)
//从控件获取 文件名
for ll_index = 1 to ll_items
ls_filename = lb_FileList_NoDisplay.text(ll_index)
//进入下轮循环 不执行后续语句
if right(ls_filename, 1)=']' then
continue
end if
i = i+1
lvi_item.label = ls_filename
lvi_item.data = ls_filename
lv_filelist.additem( lvi_item)
next
closeuserobject(lb_FileList_NoDisplay)
【更新应用】
Int li_index
ListViewItem llv_item
string ls_tmp
For li_index = 1 To lv_filelist.TotalItems()
lv_filelist.GetItem (li_index,llv_item)
// If llv_item.label Then
// MessageBox("提示",String(li_index) + "是选中的~r~n标号:" + &
// llv_item.label + "数据:" + String(llv_item.data))
// End If
ls_tmp += string(llv_item.statepictureindex)
ls_tmp += "|"
Next
messagebox( "", ls_tmp)