本帖最后由 cynthia59 于 2013-5-22 15:59 编辑
最近学习用autoit做个小界面,用到GUICtrlSetData时,需要向一个edit控件里写文本,我采用的方式是从文件里一行一行读取,但是需要换行时,用@lf和@cr都不能换行,是直接连着写进控件的,用@crlf时却直接给我换了2行,不知道该如何解决?(代码第37行)
-------------------------------------------------------
其实这是个读配置文件的地方,本来想用读标准ini的方式取数据,但是edit控件里需要换行显示文本内容,写到ini里再用IniRead只能读到第一行数据,后面的读不到了。如果这里有方式可解决也谢谢了!
-------------------------------------------------------
代码如下(已删去了不相关的代码)#include <GuiConstantsEx.au3>
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <EditConstants.au3>
Opt ("GUIOnEventMode",1)
$parent = GuiCreate("test", 400, 420)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
$Edit_1 = GuiCtrlCreateEdit("", 10, 93, 380, 150 )
$Button_7 = GuiCtrlCreateButton("读取配置文件", 120, 383 , 100)
GUICtrlSetOnEvent(-1, "ReadPressed")
Func ChooseProjPressed()
$var_proj = FileOpenDialog("", "" , "", 1 + 4 , "", $parent )
GUICtrlSetData ( $Edit_1, $var_proj & @CRLF, 1 )
EndFunc ;==>ChooseProjPressed
Func ReadPressed()
$var_read = FileOpenDialog("", "" , "所有文件 (*.*)", 1 + 4 , "", $parent )
$file = FileOpen($var_read, 0)
For $i=1 To 100
$line = FileReadLine($file, $i)
If @error = -1 Then ExitLoop
GUICtrlSetData($Edit_1 , $line & @LF, 1 ) ;这里有问题!
Next
EndFunc ;==>ReadPressed
Func SpecialEvents()
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
Exit
Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
Case @GUI_CtrlId = $GUI_EVENT_RESTORE
EndSelect
EndFunc ;==>SpecialEvents
; GUI MESSAGE LOOP
GuiSetState()
While GuiGetMsg() <> $GUI_EVENT_CLOSE
WEnd
|