2015-01-08 2 views
0

편집 할 수있는 TextField가 있습니다. 하지만 사용자가 확인란을 클릭하면 TextField를 비활성화하고 textfield 값을 지울 필요가 있습니다. 필드를 비활성화했지만 TextField 값을 지울 수 없습니다. 그러니 어떻게해야하는지 알려주세요.확인란을 클릭하면 텍스트 입력란이 지워집니다

참고 : 값을 지우면 TextField에 값이있는 경우 비어 있어야합니다. 확인란을 클릭합니다.

코드 :

 ${NSD_CreateText} 50u 67u 200u 12u "" 
     Pop $txtUsername 
     ${NSD_SetText} $txtUsername $Text_txtUsername 

     ${NSD_CreatePassword} 50u 80u 200u 12u "" 
     Pop $pwdPassword 
     ${NSD_SetText} $pwdPassword $Text_pwdPassword 

     ${NSD_CreateCheckbox} 0 96u 100% 12u "&Use Windows Login (Domain account must have 'log on as a service' right.)" 
     Pop $chkCheckbox 
     ${NSD_OnClick} $chkCheckbox EnDisableWindowsLoginButton 

Function EnDisableWindowsLoginButton 
    Pop $chkCheckbox 
    ${NSD_GetState} $chkCheckbox $sqlLogin 
    ${If} $sqlLogin == 1 
     EnableWindow $txtUsername 0 
     EnableWindow $pwdPassword 0 
    ${Else} 
     EnableWindow $txtUsername 1 
     EnableWindow $pwdPassword 1 
    ${EndIf} 

FunctionEnd 
+0

귀하의 시도를 보여주십시오. 그래서 우리는 무엇이 잘못되었는지 말할 수 있습니다. – Seki

답변

0

당신은 NSD_SetText와 텍스트 상자의 값을 설정할 수 있습니다. 실제로이 필드를 초기화하는 데 이미 사용중인 것 같습니다. 이런 식으로 뭔가를 시도 :

Function EnDisableWindowsLoginButton 
    Pop $chkCheckbox 
    ${NSD_GetState} $chkCheckbox $sqlLogin 
    ${If} $sqlLogin == 1 
     ${NSD_SetText} $txtUsername "" 
     ${NSD_SetText} $pwdPassword "" 
     EnableWindow $txtUsername 0 
     EnableWindow $pwdPassword 0 
    ${Else} 
     EnableWindow $txtUsername 1 
     EnableWindow $pwdPassword 1 
    ${EndIf} 
FunctionEnd 

는 사용자가 입력 한 값을 느슨하게하지 않으려면, 당신은 몇 가지 임시 변수로 StrCpy 수 있으며, 사용자가 체크 박스를 선택하거나 선택 취소합니다 때/경우이를 복원 할 수 있습니다.

+0

감사합니다. 잘 작동합니다. – user3337109