怎么删除用循环语句创建的控件呢?
本帖最后由 ziyaxian 于 2009-5-31 16:27 编辑在一个窗口里我用循环语句创建了许多控件,再调用此循环时新创建的控件会覆盖原来的控件但没有清除原来的控件,用什么方法清除原来的控件呢?请高手指点
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <date.au3>
Local $var,$a,$s
$var = IniReadSection("config.ini", "名称")
If @error = 1 Then
MsgBox(0,"错误","config.ini文件不存在"&@CRLF&"请重新配置config.ini文件")
EndIf
Dim $i
$Form1 = GUICreate("网络监控", 530, 394, -1, -1)
GUICtrlCreateGroup("", 6, 0, 260, 355)
GUICtrlCreateGroup("", 264, 0, 262, 355)
$Button1 = GUICtrlCreateButton("开始", 240, 363, 50, 21, 0)
$Button2 = GUICtrlCreateButton("停止", 320, 363, 50, 21, 0)
$Label_time= GUICtrlCreateLabel("Label2", 21, 367, 212, 21)
GUICtrlSetData($Label_time,'日期/时间: '& _now() )
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button1
AdlibEnable('_ping', 20000)
Case $Button2
AdlibDisable()
EndSwitch
WEnd
func _ping()
$var = IniReadSection("config.ini", "名称")
If @error <> 1 Then
$b=8
$var = IniReadSection("config.ini", "名称")
For $i = 1 to $var
$a = ping ( $var[$i],1000 )
If $a Then
$s =$var[$i]
$Input1 = GUICtrlCreateInput($s, 8, $b, 105, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
$Input2 = GUICtrlCreateInput("正常", 123, $b, 61, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
$Input3 = GUICtrlCreateInput("延时:"&$a, 191, $b, 65, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
Else
$s =$var[$i]
$Input1 = GUICtrlCreateInput($s, 8, $b, 105, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
$Input2 = GUICtrlCreateInput("网络中断", 123, $b, 61, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
GUICtrlSetColor(-1, 0xff0000)
$Input3 = GUICtrlCreateInput("请速处理", 191, $b, 65, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
GUICtrlSetColor(-1, 0xff0000)
SoundPlay(@WindowsDir & "\media\tada.wav",1)
$PingList=@YEAR&@MON&@MDAY&".txt"
$info=FileOpen($PingList,1)
FileWrite($info, _now() &" "& $s&" 网络不通" )
FileWrite($info, @CRLF)
fileclose($info)
EndIf
$b=$b+25
Next
$Label_time= GUICtrlCreateLabel("Label2", 21, 367, 212, 21)
GUICtrlSetData($Label_time,'日期/时间: '& _now() )
GUISetState(@SW_SHOW)
GUISetState(@SW_UNLOCK)
Sleep(5000)
EndIf
EndFunc 有人知道吗?或别的方法实现也行 用 GUICtrlDelete ( 控件ID ) 用GUICTRLDelete删除的只是最后一个循环生成的控件,别的删不了啊 那不就得了,创建的同时保存ID,在删除的地方使用就可以了。 谢谢,终于解决了
页:
[1]