关于列表框(ListBox)可容纳字符数过少的问题?
有一应用,我想把C:\Documents and Settings\Administrator\「开始」菜单\程序 和 C:\Documents and Settings\All Users\「开始」菜单\程序 两目录下的所有文件 都扫描 ,并且使用列表框(ListBox) 显示出来。但发现在显示时会出现“ Unterminated string 错误”。 检查发现ListBox只能容纳大约2500个字符左右。那我要显示更多的字符?啥办?难道只能清减或使用多个列表框吗?没法贴代码。
[ 本帖最后由 ququ12345 于 2008-10-4 21:51 编辑 ] 为什么要放在一行呢? 那一行真够历害的!1万多的长度! GUICtrlSetLimit($List1,65535,1) 给一个自动添加楼主所要求目录下的所有快捷方式到LISTVIEW的例子:
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447)
$List1 = GUICtrlCreateList("", 40, 24, 553, 370)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
RunWait(@ComSpec & ' /c dir "' & @ProgramsDir & '"\*.* /a /s /b>dir.log')
For $i = 1 To 65535
$string = FileReadLine("dir.log", $i)
If @error Then ExitLoop
$strings = StringRegExp($string, '.+\.lnk',1)
If @error = 0 Then GUICtrlSetData($List1, $string)
Next
RunWait(@ComSpec & ' /c dir "' & @ProgramsCommonDir & '"\*.* /a /s /b>dir.log')
For $i = 1 To 65535
$string = FileReadLine("dir.log", $i)
If @error Then ExitLoop
$strings = StringRegExp($string, '.+\.lnk',1)
If @error = 0 Then GUICtrlSetData($List1, $string)
Next
FileDelete("dir.log")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
[ 本帖最后由 liongodmien 于 2008-10-4 21:37 编辑 ] 原帖由 ququ12345 于 2008-10-4 21:40 发表 http://www.autoitx.com/images/common/back.gif
那行有200多项目,已经用“|”分开。表示成一行而己。
呵呵,你的那个我也看过,我可不知道有200多个项目,不过却是有几个“|”是没加的! 原帖由 liongodmien 于 2008-10-4 21:36 发表 http://www.autoitx.com/images/common/back.gif
给一个自动添加楼主所要求目录下的所有快捷方式到LISTVIEW的例子:
#include
#include
#include
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447)
$ ...
感谢兄弟。我了解我错在哪了。解决我大问题了。谢谢哈。^_^ 原帖由 liongodmien 于 2008-10-4 21:42 发表 http://www.autoitx.com/images/common/back.gif
呵呵,你的那个我也看过,我可不知道有200多个项目,不过却是有几个“|”是没加的!
我直接COPY生成的。可能就有几个没有。呵。再谢。我再试试。
看一下动态加项目是不是可以近似无限。 原帖由 liongodmien 于 2008-10-4 20:53 发表 http://www.autoitx.com/images/common/back.gif
GUICtrlSetLimit($List1,65535,1)
设置某些控件的字符数或象素数限制。
GUICtrlSetLimit ( 控件ID, 最大值 [, 最小值] )
对于 List 控件,此值表示能水平滚动的最大长度(以象素为单位)。
对于 Input/Edit 控件,此值表示最多能输入的字符数。
页:
[1]